CREATE ROLE

说明

定义一个新角色

语法

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;