数据库中,不同的用户拥有不同的权限,合理的授权,可以保证数据库的安全
GRANT语句
MySQL中,提供了一个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_UPDATE_PER_HOUR count,设置每小时最多,可以执行多少次更新
4、MAX_CONNECTIONS_PER_HOUR count,设置每小时,最大的连接数量
5、MAX_USER_CONNECTIONS,设置每个用户最多,可以同时建立连接的数量
使用GRANT语句,创建一个新用户,用户名为user4,密码为123
权限,user4用户,对所有数据库有INSERT SELECT权限,并使用WITH GRANT OPTION子句
执行成功,使用SELECT查询user表的用户权限
可以看出,user的值为user4
Insert_priv、Slect_priv、Grant_priv的值都为Y
说明,用户user4,对所有数据库具有增加、查询以及对其他用户,赋予相应权限的功能