

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# DROP ROLE
<a name="r_DROP_ROLE"></a>

从数据库中删除角色。只有创建角色的角色拥有者、使用 WITH ADMIN 选项的用户或超级用户才能删除角色。

您不能删除已授予用户的角色或依赖此角色的其他角色。

## 所需的权限
<a name="r_DROP_ROLE-privileges"></a>

以下是 DROP ROLE 所需的权限：
+ Superuser
+ 角色拥有者，是创建角色的用户，或者是已被授予具有 WITH ADMIN OPTION 权限的角色的用户。

## 语法
<a name="r_DROP_ROLE-synopsis"></a>

```
DROP ROLE role_name [ FORCE | RESTRICT ] 
```

## 参数
<a name="r_DROP_ROLE-parameters"></a>

*role\$1name*  
角色的名称。

[ FORCE \$1 RESTRICT ]  
默认设置为 RESTRICT。当您尝试删除继承了其他角色的角色时，Amazon Redshift 会返回错误。使用 FORCE 删除所有角色分配（如果存在）。

## 示例
<a name="r_DROP_ROLE-examples"></a>

下面的示例将删除角色 `sample_role`。

```
DROP ROLE sample_role FORCE;
```

下面的示例尝试使用默认 RESTRICT 选项删除授予用户的角色 sample\$1role1。

```
CREATE ROLE sample_role1;
GRANT ROLE sample_role1 TO user1;
DROP ROLE sample_role1;
ERROR:  cannot drop this role since it has been granted on a user
```

要成功删除已授予用户的 sample\$1role1，请使用 FORCE 选项。

```
DROP ROLE sample_role1 FORCE;
```

下面的示例尝试使用默认 RESTRICT 选项删除另一个角色依赖的角色 sample\$1role2。

```
CREATE ROLE sample_role1;
CREATE ROLE sample_role2;
GRANT ROLE sample_role1 TO sample_role2;
DROP ROLE sample_role2;
ERROR:  cannot drop this role since it depends on another role
```

要成功删除被另一个角色依赖的 sample\$1role2，请使用 FORCE 选项。

```
DROP ROLE sample_role2 FORCE;
```