MySQL数据库的root用户账号拥有对所有库、表的全部权限,频繁使用root账号会给数据库服务器带来一定的安全风险。通常在实际工作中会建立一些低权限的用户,只负责一部分库、表的管理和维护操作,甚至可以对查询、修改、删除记录等各种操作做进一步的细化限制,从而将数据库的风险降至最低。
1、授予权限GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会创建新的用户,否则,GRANT语句用于修改用户信息。
语句格式如下:
GRANT 权限列表 ON 库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY '密码' ]
使用GRANT语句时,需要注意的事项如下:
权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,Select 允许查询;Insert 插入数据;Update 更新数据;Delete 删除数据;All 给所有权限,增加删改查;使用“all”表示所有权限,可授权执行任何操作。
库名.表名:用于指定授权操作的库和表的名称,其中可以使用通配符“”。“auth.”表示授权操作的对象为auth库中的所有表。
用户名@来源地址:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址。
IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分,则用户的密码将为空。
mysql> grant all on bdqn.* to 'rundb'@'localhost' identified by 'pwd@123'; <!--授权用户rundb对bdqn数据库中所有表有完全控制权限--> mysql> show grants for 'rundb'@'localhost'; <!--查看授权的权限--> mysql> revoke all on bdqn.stuinfo from 'rundb'@'localhost'; <!--取消授权-->