ALTER ROLE 语句
将兼容性角色迁移到用户定义的系统角色,然后自动删除兼容性角色。
注意 您不能使用 ALTER ROLE 语句迁移 SYS_AUTH_SA_ROLE 或 SYS_AUTH_SSO_ROLE。迁移 SYS_AUTH_DBA_ROLE 时,会自动迁移这两个角色。
快速链接:
转至参数
转至示例
转至用法
转至标准
转至权限
语法
语法 1 - 迁移 SYS_AUTH_DBA_ROLE
语法 2 – 迁移所有其他兼容性角色
参数
- predefined_sys_role_name 仍存在于数据库中(尚未被删除)的兼容性角色的名称。
- new_role_name 新角色的名称,不能以 SYS_ 作为前缀,也不能以 _ROLE 作为后缀。
- new_sa_role_name 仅在迁移 SYS_AUTH_DBA_ROLE 时需要此参数。要向其迁移 SYS_AUTH_SA_ROLE 的基础系统特权的新角色不能是数据库中已存在的角色,新角色名称也不能以前缀 SYS_ 开头或以后缀 _ROLE 结尾。
- new_sso_role_name 仅在迁移 SYS_AUTH_DBA_ROLE 时需要此参数。要向其迁移 SYS_AUTH_SSO_ROLE 的基础系统特权的新角色不能是数据库中已存在的角色,新角色名称也不能以前缀 SYS_ 开头或以后缀 _ROLE 结尾。
示例
- 示例 1 将 SYS_AUTH_DBA_ROLE 分别迁移到新角色 Custom_DBA、Custom_SA 和 Custom_SSO。然后将授予 SYS_AUTH_DBA_ROLE 的所有用户、基础系统特权和角色自动迁移到适用的新角色。最后,删除 SYS_AUTH_DBA_ROLE、SYS_AUTH_SA_ROLE 和 SYS_AUTH_SSO_ROLE。
ALTER ROLE SYS_AUTH_DBA_ROLEMIGRATE TO Custom_DBA, Custom_SA, Custom_SSO
- 示例 2 将 SYS_AUTH_OPERATOR_ROLE 角色迁移到新角色 Operator_role。然后将授予 SYS_AUTH_OPERATOR_ROLE 的所有用户、基础系统特权和角色自动迁移到新角色并删除 SYS_AUTH_OPERATOR_ROLE。
ALTER ROLE SYS_AUTH_OPERATOR_ROLEMIGRATE TO Operator_role
用法
迁移过程中:
- 当前已授予要迁移的预定义角色的所有系统特权均自动授予该新的用户定义角色。
- 当前已授予要迁移的预定义角色的所有用户和角色均自动授予该新的用户定义角色。
- 删除兼容性角色。
由于在迁移过程中未指定角色管理员,因此只有全局角色管理员能够管理新角色。请使用 CREATE ROLE 语句为该角色添加具有适当管理权限的角色管理员。
标准
符合 ANSI SQL 的级别:Transact-SQL 扩展。
权限
需要具备所授予的 MANAGE ROLES 系统特权以及管理权限。