DROP ROLE¶
从系统中移除指定角色。
语法¶
DROP ROLE [ IF EXISTS ] <name>
参数¶
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>');
以下示例检索
myrole
是授权方或被授权方的权限授予:SELECT * FROM snowflake.account_usage.grants_to_roles WHERE grantee_name = upper('myrole') OR granted_by = upper('myrole');
如果角色是向用户授予角色的授予者,则删除该角色会自动撤消这些授权。
示例¶
DROP ROLE myrole;