新建角色、将现有用户扩展为角色,或者管理角色对应的角色管理员。
快速链接:
转至参数
转至示例
转至用法
转至标准
转至权限
CREATE [ OR REPLACE ] ROLE { | FOR USER }
[ WITH ADMIN [ ONLY ] , [ SYS_MANAGE_ROLES_ROLE ]
OR REPLACE 子句,否则 OR REPLACE 数据库中必须包含 OPTION 而未包含在新角色管理员列表中的现有角色管理员将成为没有角色管理权限的角色的成员。所有被授予 WITH ADMIN ONLY OPTION 而未包含在新角色管理员列表中的现有角色管理员将作为角色的成员被删除。使用 OR REPLACE 子句时,如果新角色管理员列表中包含的某个现有角色管理员的原始管理权限高于替换权限,则保留其原始管理权限。例如,用户 A 是一个现有角色管理员,最初被授予对角色的 WITH ADMIN 权限。新角色管理员被授予 WITH ADMIN ONLY 权限。如果该列表中包含用户 A,则用户 A 将保留较高的 WITH ADMIN 权限。
OPTION 而未包含在新角色管理员列表中的现有角色管理员将成为没有角色管理权限的角色的成员。
OPTION 而未包含在新角色管理员列表中的现有角色管理员将作为角色的成员被删除。
FOR USER 使用 FOR USER 子句而不使用 OR REPLACE 时,CREATE ROLE Sales
CREATE OR REPLACE ROLE FOR USER Jane
CREATE ROLE Finance WITH ADMIN Mary, Jeff
CREATE ROLE Finance WITH ADMIN ONLY Mary, Jeff, SYS_MANAGE_ROLES_ROLE
CREATE OR REPLACE ROLE Finance WITH ADMIN ONLY Susan, Bob, Sarah, SYS_MANAGE_ROLE_ROLE
如果指定角色管理员 (OR REPLACE 子句进行添加。
如果未指定 ADMIN 子句,将使用缺省 WITH ADMIN ONLY 子句,且缺省管理员为全局角色管理员 (SYS_MANAGE_ROLES_ROLE)。
替换角色管理员时,如果角色具有全局角色管理员,则必须将全局角色管理员包含在新角色管理员列表中,否则会将其从角色中删除。
但是,使用 WITH ADMIN 子句授予角色管理员时,由于该子句对全局角色管理员无效,您必须使用 GRANT ROLE 语句将全局角色管理员 (SYS_MANAGE_RILES_ROLE) 重新添加到角色。执行此授予失败则表示全局角色管理员无法管理该角色。
符合 ANSI SQL 的级别:Transact-SQL 扩展。
OR REPLACE 子句 – 需要 MANAGE ROLES 系统特权,以及对所替换角色的管理权限。