Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 数据库管理 » 用户和数据库安全 » 用户安全性(角色和特权) » 角色 » 兼容性角色

 

将兼容性角色迁移到用户定义角色 (SQL)

将兼容性角色迁移到用户定义角色,然后将新角色授予其他角色和用户。迁移兼容性角色时,系统会自动将用户定义角色授予兼容性角色的所有被授予者,同时删除兼容性角色。

前提条件

必须拥有 MANAGE ROLES 系统特权,并且对迁移的角色具有管理权限。

上下文和注释

兼容性角色与启动者角色相似。不能修改兼容性角色的基础系统特权。但可先将这些角色迁移到用户定义角色,然后再修改特权。

为新角色指派的名称不能以 SYS_ 作为前缀,而以 _ROLE 作为后缀。例如,SYS_MyBackup_ROLE 不能作为用户定义角色的名称。为新角色指派的名称是永久名称;以后不能更改。

如果迁移已禁用系统特权继承的角色(例如 SYS_AUTH_VALIDATE_ROLE),则新建用户定义角色的特权将授予继承树中的所有被授予者。

SYS_AUTH_SA_ROLE 和 SYS_AUTH_SSO_ROLE 系统角色不能单独迁移。但在迁移 SYS_AUTH_DBA_ROLE 系统角色时,SYS_AUTH_SA_ROLE 和 SYS_AUTH_SSO_ROLE 系统角色会自动包括到新的用户定义角色中。

 任务
  • 要迁移兼容性角色,可执行以下 ALTER ROLE 语句:

    ALTER ROLE compatibility-role MIGRATE TO new-role-name;

    如果您要迁移 SYS_AUTH_DBA_ROLE 系统角色,请记住将自动迁移的 SYS_AUTH_SA_ROLE 和 SYS_AUTH_SSO_ROLE 系统角色的名称包括在内(即 MIGRATE TO new-role-name, new-sa-role-name, new-sso-role-name)。

结果

兼容性角色的所有被授予者已自动授予用户定义角色。兼容性角色已删除。

下一个

修改新的用户定义角色的系统特权,并将该角色授予其他用户。

虽然兼容性角色会在迁移后自动删除,但可以使用 CREATE ROLE 语句将其恢复,以备将来使用。请参见恢复兼容性角色 (SQL)

以下语句将 SYS_AUTH_BACKUP_ROLE 兼容性角色迁移到新的用户定义角色 my_BACKUP。以前授予了 SYS_AUTH_BACKUP_ROLE 兼容性角色的所有用户现在会被授予 my_BACKUP 角色,其中包括这些用户对兼容性角色拥有的所有管理特权。

ALTER ROLE SYS_AUTH_BACKUP_ROLE MIGRATE TO my_BACKUP;

以下语句分别将 SYS_AUTH_DBA_ROLE、SYS_AUTH_SA_ROLE 和 SYS_AUTH_SSO_ROLE 系统角色迁移至用户定义角色 my_DBA、my_DBA_Administration 和 my_DBA_Security。授予原始角色的所有用户、基础系统特权和角色都会自动迁移至新角色。最后,将删除 SYS_AUTH_DBA_ROLE、SYS_AUTH_SA_ROLE 和 SYS_AUTH_SSO_ROLE 系统角色。

ALTER ROLE SYS_AUTH_DBA_ROLE
MIGRATE TO my_DBA, my_DBA_Administration, my_DBA_Security;

 另请参见