Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
从数据库中删除角色,或者将用户扩展角色重新转换回常规用户。
DROP ROLE [ FROM USER ] role-name [ WITH { REVOKE | DROP OBJECTS } ]
role-name 指定所删除或转换的角色的名称。
FROM USER 子句 指定此子句可将用户扩展角色重新转换回常规用户。该用户会保留所有登录特权、系统特权及其拥有的角色。
WITH REVOKE 子句 如果其他用户已被授予 role-name,可指定 WITH REVOKE。
WITH DROP OBJECTS 子句 指定 WITH DROP OBJECTS 可将 role-name 所拥有的对象删除。如果有任何对象无法被删除(例如,因为该对象当前正在使用中),则该语句将返回错误。如果 role-name 是用户扩展角色,则无法指定此子句。
用户定义角色可从数据库中删除,用户扩展角色可以重新转换回常规用户,前提是所有相关角色满足具有活动口令的管理用户的最低要求数量(由 min_role_admin 数据库选项设置)。
将用户扩展角色重新转换回常规用户后,对象的所有权属于要重新转换回常规用户的用户。
将用户扩展角色重新转换回常规用户后,授予 role-name 的任何特权均在其被转换后属于该用户。
如果将用户扩展角色重新转换回常规用户,并且为任何其他角色和/或用户授予了该用户扩展角色,则必须指定 WITH REVOKE 子句,否则该语句将返回错误消息并失败。
如果受删除操作影响的对象正在使用中,则该语句将返回错误消息并失败。
必须对所删除的角色具有管理权限。
自动提交
SQL/2008 服务商扩充。
以下语句将名为 Joe 的用户扩展角色重新转换回常规用户。用户扩展角色所拥有的对象现在由常规用户 Joe 拥有。已被授予 Joe 的用户或角色保留与该角色相关联的基础特权。
DROP ROLE FROM USER Joe;
以下语句从数据库中删除名为 Jack 的用户扩展角色。只要角色 Jack 拥有对象,对象的所有权将归还用户 Jack。被授予 Jack 的用户或角色将保留与角色 Jack 相关的基础特权。
DROP ROLE Jack;
以下语句将名为 Sam 的用户扩展角色重新转换回常规用户。已被授予 Sam 的用户和角色撤消 Sam 的特权。
DROP ROLE FROM USER Sam WITH REVOKE;
以下语句删除名为 Sales1 的角色。被授予 Sales1 的用户或角色将保留与 Sales1 相关的基础特权。
DROP ROLE Sales1;
以下语句删除名为 Sales2 的角色。已被授予 Sales2 的用户或角色将丢失与 Sales2 相关的所有基础特权。
DROP ROLE Sales2 WITH REVOKE;
以下语句将名为 Marketing1 的用户扩展角色转换为名为 Marketing1 常规用户,并删除其拥有的任何对象。
DROP ROLE FROM USER Marketing1 WITH DROP OBJECTS;
以下语句将删除名为 Marketing2 的角色及其拥有的对象,并撤消被授予该角色的用户和角色的基础系统特权。
DROP ROLE Marketing2 WITH REVOKE WITH DROP OBJECTS;