DROP ROLE

从系统中移除指定角色。

另请参阅:

CREATE ROLEALTER ROLESHOW ROLES

语法

DROP ROLE [ IF EXISTS ] <name>
Copy

参数

name

指定要删除的角色的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

使用说明

  • 已删除的角色无法恢复;必须重新创建。

  • 如果角色具有共享数据库的 OWNERSHIP 权限,则无法删除该角色。使用 GRANT OWNERSHIP 命令,首先转让对共享数据库的 OWNERSHIP 权限,然后删除角色。

  • 已删除的角色所拥有的任何对象的所有权会转让给执行 DROP ROLE 命令的角色。要将每个对象的所有权转让给不同的角色,请使用 GRANT OWNERSHIP ...COPY CURRENT GRANTS 的章节

  • 如果某角色作为授予者或被授予者具有未来权限,则该角色只能由具有 MANAGE GRANTS 权限的角色的用户删除。

  • 删除角色时,也会移除将角色命名为授予者或被授予者的所有当前和未来授权。

    查询 GRANTS_TO_ROLES Account Usage 视图,检索将指定角色命名为授予者或被授予者的权限授予:

    SELECT *
      FROM snowflake.account_usage.grants_to_roles
      WHERE grantee_name = upper('<role_name>') OR granted_by = upper('<role_name>');
    
    Copy

    以下示例检索 myrole 是授权方或被授权方的权限授予:

    SELECT *
      FROM snowflake.account_usage.grants_to_roles
      WHERE grantee_name = upper('myrole') OR granted_by = upper('myrole');
    
    Copy
  • 如果角色是向用户授予角色的授予者,则删除该角色会自动撤消这些授权。

示例

DROP ROLE myrole;
Copy
语言: 中文