mysql怎么创建管理员 mysql管理员权限( 五 )


中国站长.站
GRANT ALL ON samp_db.* TO max@% IDENTIFIED BY "diamond" 站.长站
“%”字符起通配符作用,与LIKE模式匹配的含义相同 。在上述语句中,它意味着“任何主机” 。所以max和max@%等价 。这是建立用户最简单的方法,但也是最不安全的 。Www@Chinaz@com
取其中 , 你可以允许一个用户从一个受限的主机集合访问 。例如,要允许mary从snake.net域的任何主机连接 , 用一个%.snake.net主机指定符:
[中国站长站]
GRANT ALL ON samp_db.* TO mary@.snake.net IDENTIFIED BY "quartz";
中国站长_站,为中文网站提供动力
如果你喜欢,用户标识符的主机部分可以用IP地址而不是一个主机名来给定 。你可以指定一个IP地址或一个包含模式字符的地址,而且,从MySQL 3.23,你还可以指定具有指出用于网络号的位数的网络掩码的IP号: Chinaz~com
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" Chinaz@com
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抱怨你指定的用户值,你可能需要使用引号(只将用户名和主机名部分分开加引号) 。Chinaz^com
GRANT ALL ON samp_db.president TO "my friend"@"boa.snake.net"
1.2 用户应该有什么级别的权限和它们应该适用于什么? 站.长站
你可以授权不同级别的权限,全局权限是最强大的,因为它们适用于任何数据库 。要使ethel成为可做任何事情的超级用户,包括能授权给其它用户 , 发出下列语句: 中.国.站长站
GRANT ALL ON *.* TO ethel@localhost IDENTIFIED BY "coffee" WITH GRANT OPTION Chinaz~com
ON子句中的*.*意味着“所有数据库、所有表” 。从安全考虑,我们指定ethel只能从本地连接 。限制一个超级用户可以连接的主机通常是明智的 , 因为它限制了试图破解口令的主机 。
Www~Chinaz~com
有些权限(FILE、PROCESS、RELOAD和SHUTDOWN)是管理权限并且只能用"ON *.*"全局权限指定符授权 。如果你愿意,你可以授权这些权限,而不授权数据库权限 。例如 , 下列语句设置一个flush用户,他只能发出flush语句 。这可能在你需要执行诸如清空日志等的管理脚本中会有用: 站.长站
GRANT RELOAD ON *.* TO flushl@localhost IDENTIFIED BY "flushpass" 中国站.长.站
一般地,你想授权管理权限,吝啬点,因为拥有它们的用户可以影响你的服务器的操作 。Www~Chinaz~com
数据库级权限适用于一个特定数据库中的所有表,它们可通过使用ON db_name.*子句授予: Chinaz^com
GRANT ALL ON samp_db TO bill@racer.snake.net INDETIFIED BY "rock" Chinaz@com
GRANT SELECT ON samp_db TO ro_user@% INDETIFIED BY "rock"
中国.站.长站
第一条语句向bill授权samp_db数据库中所有表的权限,第二条创建一个严格限制访问的用户ro_user(只读用户),只能访问samp_db数据库中的所有表,但只有读取,即用户只能发出SELECT语句 。
你可以列出一系列同时授予的各个权限 。例如 , 如果你想让用户能读取并能修改现有数据库的内容,但不能创建新表或删除表 , 如下授予这些权限: Www@Chinaz@com
GRANT SELECT,INSERT,DELETE,UPDATE ON samp_db TO bill@snake.net INDETIFIED BY "rock"
中国.站.长站
对于更精致的访问控制,你可以在各个表上授权,或甚至在表的每个列上 。当你想向用户隐藏一个表的部分时,或你想让一个用户只能修改特定的列时,列特定权限非常有用 。如:

推荐阅读