MySQL数据库的root用户拥有对所有库,表的全部权限,频繁的使用root用户会给数据库带来很大的风险,因此应建立一些低权限用户,只负责一部分库、表的管理维护操作,甚至可以对增、删、改、查各个操作进一步细化限制,从而将数据库的风险降至最低。
一,授予权限
GRANT语句:用来设置数据库用户的访问权限,当指定的用户不存在时,GRANT语句将会创建新的用户。使用GRANT语句授权的用户记录,会保存到mysql库的user、db、host、tables_priv等表中,无需刷新便立即生效。
命令语法:GRANT 权限列表 ON 库名.表名 TO [email protected] [ IDENTIFIED BY ‘密码‘ ];
权限列表:用于列出授权使用的各种数据库操作,一逗号分隔,如“select,insert,update,delete”使用“all”表示所有权限
库名.表名:用于指定授权数据库的库名和表名,其中可以使用通配符”*“。如”name.*“ 表示授权操作的对象是name库下的所有表
[email protected]�,及谁能连接,从哪里连接。来源地址可以是域名、ip,还可以使用通配符”%“,表示某个区域内或网段内所有地址,如”%.ys.com“,”192.168.1.%“。
IDENTIFIED BY:用于设置用户连接数据库时所使用的密码,若在新建用户时省略了此项,则密码为空。
实例:添加一个“liuqi”的数据用户,允许其从本地访问,对name库中的所有表具有查看权限,验证码为“123456”。
使用命令:GRANT select ON names.* TO [email protected] IDENTIFIED BY ‘123456‘;
二,查看权限
SHOW GRANTS语句:专门用来查看数据库用户的授权信息,通过FOR子语句可指定查看的对象。
命令语法:
使用命令:
三,撤销权限
REVOKE语句:用于撤销指定用户的数据库权限,撤消后的用户还可以连接数据库,但将被禁止执行对应的数据库操作。
命令语法:REVOKE 权限列表 ON 数据库名.表名 FROM [email protected]
使用命令:REVOKE all ON names.* FROM [email protected];
原文:http://yuanshuai.blog.51cto.com/10539781/1732718