Mysql数据库的安全配置、实用技巧
-----+
| ‘%‘ | ‘test‘ | test用户可以从任意主机连接数据库 | +-----------------------------+--------+----------------------------------------------+ | ‘‘ | ‘‘ | 任何用户可以从任意主机连接数据库 | +-----------------------------+--------+-----------------------------------------------+ | ‘%.y.z‘ | ‘test‘ | test用户可以从y.z域的任意主机连接数据库 | +-----------------------------+--------+----------------------------------------------+ | ‘x.y.% ‘ | ‘test‘ | test用户可以从x.y.net, x.y.com, x.y.edu等主机连接数据库| +-----------------------------+--------+----------------------------------------------+ | ‘192.168.1.1‘ | ‘test‘ | test用户可以从ip地址为192.168.1.1的主机连接数据库 | +-----------------------------+--------+---------------------------------------------+ | ‘192.168.1.% ‘ | ‘test‘ | test用户可以从C类子网192.168.1中的任意主机连接数据库 | +-----------------------------+--------+---------------------------------------------+ | ‘192.168.1.0/255.255.255.0‘ | ‘test‘ | 同上 | +-----------------------------+--------+--------------------------------------------+ SQL的字符串通配符%表示匹配任意字符,可以是0个字符,通配符_表示匹配一个字符。 权限列指出在范围列中指定的用户拥有何种权限。该表使用GRANT语句的权限名称。对于绝大多数在user、db和host表中的权限列的名称与GRANT语句中有明显的联系。如Select_priv对应于SELECT权限。 3)授权表使用举例 grant用于给增加用户和创建权限,revoke用于删除用户权限。 下面是一些用grant增加用户和创建权限的例子: mysql> grant all privileges on *.* to test@localhost identified by ‘test‘ with grant option; 这句增加一个本地具有所有权限的test用户(超级用户),密码是test。ON子句中的*.*意味着"所有数据库、所有表"。with grant option表示它具有grant权限。 mysql> grant select,insert,update,delete,create,drop privileges on test.* to test1@‘192.168.1.0/255.255.255.0‘ identified by ‘test‘; 这句是增加了一个test1用户,口令是test,但是它只能从C类子网192.168.1连接,对test库有select,insert,update,delete,create,drop操作权限。 用grant语句创建权限是不需要再手工刷新授权表的,因为它已经自动刷新了。 给用户创建权限还可以通过直接修改授权表: mysql> insert into user values("localhost","test",password("test"),"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y"); mysql> flush privileges; 这两句和上面第一句grant的效果是一样的,也是增加了一个本地的test超级用户。我们看到用grant方便多了,而且还不需flush privileges 。 mysql> insert into user (host,user,password) values("192.168.1.0/255.255.255.0","test1",PASSWORD("test")); mysql> insert into db values("192.168.1.0/255.255.255.0","test","test1","Y","Y","Y","Y","Y","Y","N","N","N","N") mysql> flush privileges; 这三句和上面第二句grant的效果也是一样的,也是增加了一个只能从C类子网192.168.1连接,对test库有select,insert,update,delete,create,drop操作权限的test1用户,口令是test。要取消一个用户的权限,使用revoke语句。revoke的语法非常类 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |