DCL语句
SQL语言的DCL语句主要包括记录的授权(grant)、撤消(revoke)和查看(show grants)等。SQL语言在不同的数据库管理系统中的使用略有差异,本文的示例均在MySQL数据库中实现。
查看权限
同一个用户在不同主机登录,可以设置不同的用户权限。例如:'root'@'localhost'表示在本机登录的root用户。
语句格式
- show grants for '用户名'@'主机名'
语句详解
1、'用户名'@'主机名':登录用户及所在主机。
- '用户名'@'localhost':在本机登录的用户。
- '用户名'@'%':在任意主机登录的用户。
- '用户名'@'IP网段':在指定网段登录的用户,例如192.168.0.%表示192.168.0.0网段的登录用户。
- '用户名'@'IP地址':在指定IP地址登录的用户,例如192.168.0.1表示在192.168.0.1上的登录用户。
使用示例
1、用户有相应权限时会显示授权语句。

2、用户无相应权限信息时会显示报错信息。

授予权限
语句格式
- grant 权限列表 on 数据库名.数据表名 to '用户名'@'主机名'
语句详解
1、权限列表:授予用户的权限。
- all、usage:所有权限、无权限。
- insert、update、delete、select:数据的增加、修改、删除、查看。
- create、alter、drop:数据库与数据表的创建、修改、删除。
2、数据库名.数据表名:权限的作用域。
- *.*:所有的数据库与数据表。
- 数据库名.*:指定数据库下所有的表。
- 数据库名.数据表名:指定库中的指定表。
使用示例
1、grant all on *.* to '用户名'@'%':从任意主机登录的用户对所有库和所有表具有所有权限。

2、grant 权限列表 on *.* to '用户名'@'%':从任意主机登录的用户对所有库和所有表具有指定权限。

撤消权限
语句格式
- revoke 权限列表 on 数据库名.数据表名 for '用户名'@'主机名'
使用示例
1、revoke all on *.* to '用户名'@'%':撤消从任意主机登录的用户在所有库和所有表上的所有权限。

2、revoke 权限列表 on *.* to '用户名'@'%':撤消从任意主机登录的用户在所有库和所有表上的指定权限。
