简体中文
Appearance
简体中文
Appearance
角色是权限的逻辑分组,作为不可登录的特殊用户账户,用于简化多用户的权限管理。通过将权限打包成角色,可以实现批量授权和统一的权限维护。
基本语法:
CREATE ROLE [IF NOT EXISTS] role [, role ] ...role:角色名,如admin,developer。此外,主机名也可以作为角色名的一部分,如'admin'@'127.0.0.1',但主机名不具有实际含义,仅作为字面量存储,不可用于登录,缺省值为%。授予角色权限的操作与授予用户权限相同。
示例:
授予角色 manager 对数据库 sales_db 中所有表的查询权限:
GRANT SELECT ON sales_db.* TO 'manager'@'%';授予角色 admin 对 inventory_db 中 products 表的插入和更新权限,并允许该角色将权限授予其他用户:
GRANT INSERT, UPDATE ON inventory_db.products TO 'admin' WITH GRANT OPTION;TIP
角色目前不支持继承
收回角色权限的操作与收回用户权限相同。
示例:
从角色 readonly 收回对数据库 hr_db 中所有表的查询权限:
REVOKE SELECT ON hr_db.* FROM 'readonly';从角色 editor 收回对数据库 content_db 中 articles 表的所有权限:
REVOKE ALL ON content_db.articles FROM 'editor';角色可以作为一个权限的集合体授予给用户,被授予者将继承指定角色的权限。
角色的授予可以通过如下命令实现:
GRANT user_or_role [, user_or_role] ...
TO user_or_role [, user_or_role] ...
[WITH ADMIN OPTION]角色授予给用户后将立即生效,用户可以直接使用角色的权限。
基本语法:
REVOKE user_or_role [, user_or_role] ...
FROM user_or_role [, user_or_role] ...收回后,用户将无法再使用该角色的权限。