CREATE ROLE¶
说明¶
定义一个新角色
参数¶
rolename
角色名
username
属于该角色的用户列表。用户必须已经存在。
包含在列表中的用户将具有该角色的权限。
注解
CREATE ROLE在当前连接数据库中增加一个新角色,创建者必须是DBA。
角色是一组权限的集合。DBA利用角色进行权限管理可以简化权限分配的复杂性。
例如,DBA可以创建一个对表具有查看、插入权限的角色。在创建用户时,对用户赋予此角色,用户将自动具有此角色拥有的查看、插入权限而不用对每个用户单独赋权限。当DBA决定收回用户的插入权限时,只需收回角色的插入权限而不用单独改变每个用户的权限。
示例¶
示例1: 创建角色(不包含任何用户)
-- 清理环境
DROP ROLE role1;
-- 创建角色(不包含任何用户)
CREATE ROLE role1;
-- 删除角色
DROP ROLE role1;
示例2: 创建角色(包含用户)
-- 清理环境
DROP USER user2 CASCADE;
DROP USER user3 CASCADE;
DROP ROLE role2;
-- 创建用户
CREATE USER user2;
CREATE USER user3;
-- 创建角色(包含用户)
CREATE ROLE role2 WITH USER user2, user3;
-- 删除角色和用户
DROP ROLE role2;
DROP USER user3;
DROP USER user2;
示例3: 创建角色并授权
-- 清理环境
DROP ROLE role3;
DROP TABLE tab3 CASCADE;
-- 创建表
CREATE TABLE tab3(a INT);
-- 创建角色
CREATE ROLE role3;
-- 为角色授权
GRANT SELECT ON tab3 TO ROLE role3;
-- 删除角色和表
DROP ROLE role3;
DROP TABLE tab3;