您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

GRANT ROLE 语句

向用户或其他角色授予角色,无论该用户或角色是否具有管理权限。

快速链接:

转至参数

转至示例

转至用法

转至标准

转至权限

语法

GRANT ROLE role_name [, …] 

TO [, …]

[ {WITH NO ADMIN | WITH ADMIN [ ONLY ] } OPTION ]

[ WITH NO SYSTEM PRIVILEGE INHERITANCE ]

role_name

dbo†††

| diagnostics†††

| PUBLIC†††

| rs_systabgroup†††

| SA_DEBUG†††

| SYS†††

| SYS_AUTH_SA_ROLE

| SYS_AUTH_SSO_ROLE

| SYS_AUTH_DBA_ROLE††

| SYS_AUTH_RESOURCE_ROLE†

| SYS_AUTH_BACKUP_ROLE†

| SYS_AUTH_VALIDATE_ROLE†

| SYS_AUTH_WRITEFILE_ROLE

| SYS_AUTH_WRITEFILECLIENT_ROLE

| SYS_AUTH_READFILE_ROLE

| SYS_AUTH_READFILECLIENT_ROLE

| SYS_AUTH_PROFILE_ROLE

| SYS_AUTH_USER_ADMIN_ROLE

| SYS_AUTH_SPACE_ADMIN_ROLE

| SYS_AUTH_MULTIPLEX_ADMIN_ROLE

| SYS_AUTH_OPERATOR_ROLE

| SYS_AUTH_PERMS_ADMIN_ROLE

| SYS_REPLICATE_ADMIN_ROLE†††

| SYS_RUN_REPLICATE_ROLE†††

| SYS_SPATIAL_ADMIN_ROLE†††

|

  • 向其他角色授予选择兼容性角色时可以使用 WITH NO SYSTEM PRIVILEGE INHERITANCE 子句。它用于防止兼容性角色的成员自动继承该角色的基础系统特权。授予给用户扩展的角色时,WITH NO SYSTEM PRIVILEGE INHERITANCE 子句仅适用于角色成员。充当角色的用户会自动继承基础系统特权,而不考虑子句为何。

  • WITH NO ADMIN OPTION WITH NO SYSTEM PRIVILEGE INHERITANCE 和 WITH NO SYSTEM PRIVILEGE INHERITANCE 子句在语义上等效。

  • †授予 SYS_AUTH_BACKUP_ROLE、SYS_AUTH_RESOURCE_ROLE 或 SYS_AUTH_VALIDATE_ROLE 角色时,不能结合 WITH NO SYSTEM PRIVILEGE INHERITANCE 子句指定 WITH ADMIN OPTION 或 WITH ADMIN ONLY 子句。

  • ††授予 SYS_AUTH_DBA_ROLE 或 SYS_RUN_REPLICATION_ROLE 角色时,只能结合 WITH NO SYSTEM PRIVILEGE INHERITANCE 子句来指定 WITH ADMIN OPTION 子句。

  • †††系统角色不支持 WITH ADMIN OPTION 和 WITH ADMIN ONLY OPTION 子句。

    参数

  • role_name 必须已存在于数据库中。用逗号分隔多个角色名。

  • grantee 必须是具有登录口令的现有用户或角色的名称。多个 userID 用逗号分隔。

  • WITH NO ADMIN OPTION 为每个 授予对各 的基础系统特权,但不能向其他用户授予

  • WITH ADMIN ONLY OPTION 为每个 授予对各 的管理特权,但不会被授予 的基础系统特权。

  • WITH ADMIN OPTION 为每个 userID 授予每个 的基础系统特权以及将 授予其他用户的权限。

  • WITH NO SYSTEM PRIVILEGE INHERITANCE 接收角色的成员不会继承授予角色的基础系统特权。但是,如果接收角色是用户扩展角色,则向扩展用户授予基础系统特权。

    示例

  • 示例 1 将 Sales_Role 授予 Sally,同时授予管理特权,这意味着她可以将 Sales_Role 授予其他用户或从其他用户撤消,也可以执行该角色授予的任何已授权任务: GRANT ROLE Sales_Role TO Sally WITH ADMIN OPTION

  • 示例 2 向不具有管理权限的 Sales_Admin 角色授予兼容性角色 SYS_AUTH_PROFILE_ROLE。Sales_Admin 是独立角色并且 Mary 和 Peter 被授予 Sales_Admin 权限。由于 SYS_AUTH_PROFILE_ROLE 是可继承的兼容性角色,因此,向 Mary 和 Peter 授予 Sales_Role 的基础系统特权。由于授予该角色时未授予管理权限,因此,他们无法授予或撤消此角色。 GRANT ROLE SYS_AUTH_PROFILE_ROLE TO Sales_Role WITH NO ADMIN OPTION

  • 示例 3 向不具有管理权限的 Tom 授予兼容性角色 SYS_AUTH_BACKUP_ROLE。Tom 是用户扩展角色,被授予了 Betty 和 Laurel 的权限。由于 SYS_AUTH_BACKUP_ROLE 是不可继承的兼容性角色,因此,未向 Betty 和 Laurel 授予该角色的基础系统特权。但是,由于 Tom 是扩展用户,因此,将直接向 Tom 授予基础系统特权。 GRANT ROLE SYS_AUTH_BACKUP_ROLE TO Tom WITH NO SYSTEM PRIVILEGE INHERITANCE

    用法

    使用 WITH ADMIN OPTION 或 WITH ADMIN ONLY OPTION 子句可以让被授予者授予或撤消角色,但不允许被授予者删除角色。 缺省情况下,如果未在授予语句中指定任何管理子句,则授予每个兼容性角色时还授予以下缺省管理权限: WITH ADMIN OPTIONWITH ADMIN ONLY OPTIONWITH NO ADMIN OPTIONSYS_AUTH_SA_ROLE SYS_AUTH_SSO_ROLESYS_AUTH_DBA_ROLESYS_AUTH_RESOURCE_ROLESYS_AUTH_BACKUP_ROLESYS_AUTH_VALIDATE_ROLESYS_AUTH_WRITEFILE_ROLESYS_AUTH_WRITEFILECLIENT_ROLESYS_AUTH_READFILE_ROLESYS_AUTH_READFILECLIENT_ROLESYS_AUTH_PROFILE_ROLESYS_AUTH_USER_ADMIN_ROLESYS_AUTH_SPACE_ADMIN_ROLESYS_AUTH_MULTIPLEX_ADMIN_ROLESYS_AUTH_OPERATOR_ROLESA_DEBUGSYS_RUN_REPLICATION_ROLE  SYS_AUTH_PERMS_ADMIN_ROLE 角色授予下列基础角色以及缺省管理权限: WITH ADMIN OPTIONWITH NO ADMIN OPTIONSYS_AUTH_BACKUP_ROLESYS_AUTH_OPERATOR_ROLESYS_AUTH_USER_ADMIN_ROLESYS_AUTH_SPACE_ADMIN_ROLESYS_AUTH_MULTIPLEX_ADMIN_ROLESYS_AUTH_RESOURCE_ROLESYS_AUTH_VALIDATE_ROLESYS_AUTH_PROFILE_ROLESYS_AUTH_WRITEFILE_ROLESYS_AUTH_WRITEFILECLIENT_ROLESYS_AUTH_READFILE_ROLESYS_AUTH_READFILECLIENT_ROLEMANAGE ROLESMANAGE ANY OBJECT PRIVILEGECHANGE PASSWORD 

    标准

  • SQL - 其它语法是 ISO/ANSI SQL 语法的服务商扩充。

  • SAP 数据库产品 – 语法受 SAP ASE 支持。

    权限

  • 需要 MANAGE ROLES 系统特权才能授予以下系统角色: dbodiagnosticsPUBLICrs_systabgroupSA_DEBUG SYSSYSSYS_REPLICATION_ADMIN_ROLESYS_RUN_REPLICATION_ROLESYS_SPATIAL_ADMIN_ROLE

  • dbo

  • diagnostics

  • PUBLIC

  • rs_systabgroup

  • SA_DEBUG SYS

  • SYS

  • SYS_REPLICATION_ADMIN_ROLE

  • SYS_RUN_REPLICATION_ROLE

  • SYS_SPATIAL_ADMIN_ROLE

  • 需要对角色具有管理特权才能授予以下角色: SYS_AUTH_SA_ROLESYS_AUTH_SSO_ROLESYS_AUTH_DBA_ROLESYS_AUTH_RESOURCE_ROLESYS_AUTH_BACKUP_ROLESYS_AUTH_VALIDATE_ROLESYS_AUTH_WRITEFILE_ROLESYS_AUTH_WRITEFILECLIENT_ROLESYS_AUTH_READFILE_ROLESYS_AUTH_READFILECLIENT_ROLESYS_AUTH_PROFILE_ROLESYS_AUTH_USER_ADMIN_ROLESYS_AUTH_SPACE_ADMIN_ROLESYS_AUTH_MULTIPLEX_ADMIN_ROLESYS_AUTH_OPERATOR_ROLESYS_AUTH_PERMS_ADMIN_ROLE<用户定义的角色名称>

  • SYS_AUTH_SA_ROLE

  • SYS_AUTH_SSO_ROLE

  • SYS_AUTH_DBA_ROLE

  • SYS_AUTH_RESOURCE_ROLE

  • SYS_AUTH_BACKUP_ROLE

  • SYS_AUTH_VALIDATE_ROLE

  • SYS_AUTH_WRITEFILE_ROLE

  • SYS_AUTH_WRITEFILECLIENT_ROLE

  • SYS_AUTH_READFILE_ROLE

  • SYS_AUTH_READFILECLIENT_ROLE

  • SYS_AUTH_PROFILE_ROLE

  • SYS_AUTH_USER_ADMIN_ROLE

  • SYS_AUTH_SPACE_ADMIN_ROLE

  • SYS_AUTH_MULTIPLEX_ADMIN_ROLE

  • SYS_AUTH_OPERATOR_ROLE

  • SYS_AUTH_PERMS_ADMIN_ROLE

  • <用户定义的角色名称>