Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
创建或替换角色,创建用户扩展角色或修改角色的管理员。
CREATE [ OR REPLACE ] ROLE { role-name | FOR USER userid } [ WITH ADMIN [ ONLY ] administrator-userid [,...] ]
role-name 使用此变量为新角色指派名称。此名称在数据库的所有用户和角色中都必须唯一。
OR REPLACE 子句 如果角色尚不存在,可使用此子句创建角色;如果角色已经存在,可使用此子句替换其管理员。
FOR USER userid 子句 使用此子句将指定用户转换为可指派给他人的用户扩展角色。该用户必须尚未扩展为其他角色。
WITH ADMIN 和 WITH ADMIN ONLY administrator-userid 子句 可以选择指定角色的管理员。WITH ADMIN 表示 administrator-userid 可以执行角色并对其进行管理。WITH ADMIN ONLY 表示 administrator-userid 只能对角色进行管理。如果未指定任何子句,则任何具有 MANAGE ROLES 系统特权的用户都可以管理角色。
min_role_admins 数据库选项可控制每个角色所需的最少管理员数。如果您在创建角色时指定的管理员不够,则该语句将返回错误。
新角色的名称不得以 'SYS_' 开头而以 '_ROLE' 结束。例如,SYS_MyBackup_ROLE 不是可接受的用户定义角色名称,而 MyBackup_ROLE 和 SYS_MyBackup 则是可接受的名称。
如果指定了 ADMIN 子句,则只有指定用户才能管理角色。如果未指定 ADMIN 子句,则缺省情况下会将角色的管理权限授予 MANAGE ROLES 系统特权。这表示全局管理员可以管理角色。
要创建用户扩展角色(即,将用户扩展为角色),请使用 CREATE ROLE FOR USER userid 语法。
CREATE ROLE FOR USER userid
使用 GRANT 语句可将系统特权授予角色。
必须具有 MANAGE ROLES 系统特权才能创建新角色。
如果指定了 OR REPLACE 子句且角色已经存在,则还必须对角色具有管理权限。
无。
SQL/2008 服务商扩充。
以下语句创建 Sales 角色。任何具有 MANAGE ROLES 系统特权的用户均可管理该角色。
CREATE ROLE Sales;
以下语句将扩展用户 JaneSmith,使其变成可以指派给其他用户的角色。
CREATE ROLE FOR USER JaneSmith;
以下语句创建角色 Finance,并使 MaryJones 和 JeffTurkott 成为(仅)具有角色管理权限的角色管理员。
CREATE ROLE Finance WITH ADMIN ONLY MaryJones, JeffTurkott;
以下示例替换在之前的示例中创建的现有 Finance 角色,将角色管理员 MaryJones 和 JeffTurkott 替换为 EllenChong 和 DaveLexx,这一次管理员将具有角色的行使权限。
CREATE OR REPLACE ROLE Finance WITH ADMIN EllenChong, DaveLexx;