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 对所有数据库具有增加、查询以及对其他用户赋予相应权限的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code repairman

你的鼓励将是我创作的最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值