MySQL 的账户与权限管理(GRANT 与 REVOKE 的用法)
www.firnow.com 时间 : 2009-12-17 作者:匿名 编辑:小张 点击: 200 [ 评论 ]
-
-
综合 资源 电子书 社区 GRANT priv_type [(column_list )] [, priv_type [(column_list )]] ...
ON [object_type ] {tbl_name | * | *.* | db_name .*} TO user [IDENTIFIED BY [PASSWORD]
'password '] [, user [IDENTIFIED BY [PASSWORD] 'password ']] ... [REQUIRE
NONE | [{SSL| X509}] [CIPHER 'cipher ' [AND]] [ISSUER 'issuer ' [AND]]
[SUBJECT 'subject ']] [WITH with_option [with_option ] ...] object_type = TABLE |
FUNCTION | PROCEDURE with_option = GRANT OPTION |
MAX_QUERIES_PER_HOUR count | MAX_UPDATES_PER_HOUR count |
MAX_CONNECTIONS_PER_HOUR count | MAX_USER_CONNECTIONS count REVOKE
priv_type [(column_list )] [, priv_type [(column_list )]] ... ON [object_type ] {tbl_name | * | *.*
| db_name .*} FROM user [, user ] ... REVOKE ALL PRIVILEGES, GRANT OPTION FROM
user [, user ] ...
GRANT 和 REVOKE 语句允许系统管理员创建 MySQL 用户 账户,授予权限和撤销权限。
MySQL 账户信息存储在 mysql 数据库的表中。在第 5 章: 数据库管理 中对本数据库和访
问控制系统进行了详尽的讨论。要了解更多详细信息,您应该查询此章。
如果授权表拥有含有 mixed-case 数据库或表名称的权限记录,并且 lower_case_table_names
系 统 变 量 已 设 置 , 则 不 能 使 用 REVOKE 撤 销 权 限 , 必 须 直 接 操 纵 授 权 表 。 ( 当
lower_case_table_names 已设置时,GRANT 将不会创建此类记录,但是此类记录可能已经
在设置变量之前被创建了。)
授予的权限可以分为多个层级:
· 全局层级
全局权限适用于一个给定服务器中的所有数据库。这些权限存储在 mysql.user 表中 。
GRANT ALL ON *.* 和 REVOKE ALL ON *.* 只授予和撤销全局权限。
· 数据库层级
数据库权限适用于一个给定数据库中的所有目标。这些权限存储在 mysql.db 和 mysql.host
表中。GRANT ALL ON db_name .* 和 REVOKE ALL ON db_name .* 只授予和撤销数据库
权限。
· 表层级
表权限适用于一个给定表中的所有列。这些权限存储在 mysql.talbes_priv 表中。GRANT
ALL ON db_name.tbl_name 和 REVOKE ALL ON db_name.tbl_name 只授予和撤销表权限。
· 列层级