快速业务通道

Mysql数据库的安全配置、实用技巧

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-03
-----+

  | ‘%‘ | ‘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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号