mysql用户管理(2)
作者: 晏子
下面就讨论一些例子。
1.1 谁能连接,从那儿连接?
你可以允许一个用户从特定的或一系列主机连接。有一个极端,如果你知道降职从一个主机连接,你可以将权限局限于单个主机
:grant all on samp_db.* to boris@localhost identified by "ruby"grant all on samp_db.* to fred@res.mars.com identified by "quartz"
(samp_db.*意思是“samp_db数据库的所有表)
另一个极端是,你可能有一个经常旅行并需要能从世界各地的主机连接的用户max。在这种情况下,你可以允许他无论从哪里连接:
grant all on samp_db.* to max@% identified by "diamond"
“%”字符起通配符作用,与like模式匹配的含义相同。在上述语句中,它意味着“任何主机”。所以max和max@%等价。这是建立用户最简单的方法,但也是最不安全的。
取其中,你可以允许一个用户从一个受限的主机集合访问。例如,要允许mary从snake.net域的任何主机连接,用一个%.snake.net主机指定符:
grant all on samp_db.* to mary@.snake.net identified by "quartz";
如果你喜欢,用户标识符的主机部分可以用ip地址而不是一个主机名来给定。你可以指定一个ip地址或一个包含模式字符的地址,而且,从mysql 3.23,你还可以指定具有指出用于网络号的位数的网络掩码的ip号:
grant all on samp_db.* to boris@192.168.128.3 identified by "ruby" grant all on samp_db.* to fred@192.168.128.% identified by "quartz" grant all on samp_db.* to rex@192.168.128.0/17 identified by "ruby"
第一个例子指出用户能从其连接的特定主机,第二个指定对于c类子网192.168.128的ip模式,而第三条语句中,192.168.128.0/17指定一个17位网络号并匹配具有192.168.128头17位的ip地址。
如果mysql抱怨你指定的用户值,你可能需要使用引号(只将用户名和主机名部分分开加引号)。
grant all on samp_db.president to "my friend"@"boa.snake.net"
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器