MySQL——数据库的高级操作(三)权限管理(2)授予权限

        在 MySQL 中提供了一个GRANT 语句,该语句可以为用户授权。

        GRANT语句的语法格式如下:

GRANT privileges [(columns)][,privileges[(columns)]] ON database.table
    To 'username'@'hostname' [IDENTIFIED BY [PASSWORD]'password']
    [,'username '@'hostname' [IDENTIFIED BY [PASSWORD]'password']]...
    [WITH with option [with option]...]

        上述语法格式中,privileges 表示权限类型,columns 参数表示权限作用于某一列,该参数可以省略不写,此时权限作用于整个表,username 表示用户名,hostname 表示主机名,IDENTIFIED BY 参数为用户设置密码,PASSWORD 参数为关键字,password 为用户的新密码。

        WITH 关键字后面可以带有多个参数 with_option,这个参数有5个取值,具体如下。

(1)GRANT OPTION:将自己的权限授予其他用户。

(2)MAX_QUERIES_PER_HOUR count:设置每小时最多可以执行多少次(count)查询。

(3)MAX_UPDATES_PER_HOUR count:设置每小时最多可以执行多少次更新

(4)MAX_CONNECTIONS_PER_HOUR count:设置每小时最大的连接数量。

(5)MAX USER_CONNECTIONS:设置每个用户最多可以同时建立连接的数量。

        使用 GRANT 语句创建一个新的用户,用户名为 user4、密码为 123,user4 用户对所有数据库有 INSERT、SELECT 权限,并使用 WITH GRANT OPTION 子句,GRANT语句如下:

GRANT INSERT,SELECT ON *.* To 'user4'@'localhost' IDENTIFIED BY '123' WITH GRANT OPTION;

        上述语句执行成功后,可以使用 SELECT语句来查询 user 表中的用户权限,查询结果如下:

mysql> use mysql;
Database changed
mysql> SELECT Host,User,password,Insert_priv,Select_priv,Grant_priv FROM mysql.user WHERE user='user4'\G
************************* 1.row *************************
       Host: localhost
       User: user4
   Password: *23AE809DDACAF96AFOFD78ED04B6A265E05AA257
Insert priv: Y
Select priv: Y
 Grant priv: Y
1 row in set (0.05 sec)

        从上述结果可以看出,User 的值为 user4,Insert_priv、Select_priv、Grant_priv 的值都为 Y,因此可以说明用户 user4 对所有数据库具有增加、查询以及对其他用户赋予相应权限的功能。

猜你喜欢

转载自blog.csdn.net/W_Fe5/article/details/142280830