SQL语言的DCL语句


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、用户有相应权限时会显示授权语句。

mysql

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

mysql

授予权限

语句格式

  • grant 权限列表 on 数据库名.数据表名 to '用户名'@'主机名'

语句详解

1、权限列表:授予用户的权限。

  • all、usage:所有权限、无权限。
  • insert、update、delete、select:数据的增加、修改、删除、查看。
  • create、alter、drop:数据库与数据表的创建、修改、删除。

2、数据库名.数据表名:权限的作用域。

  • *.*:所有的数据库与数据表。
  • 数据库名.*:指定数据库下所有的表。
  • 数据库名.数据表名:指定库中的指定表。

使用示例

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

mysql

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

mysql

撤消权限

语句格式

  • revoke 权限列表 on 数据库名.数据表名 for '用户名'@'主机名'

使用示例

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

mysql

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

mysql

发表评论

评论数量:0