Поделиться через


sp_droprole (Transact-SQL)

Область применения: SQL Server

Удаляет роль базы данных из текущей базы данных.

Внимание

В SQL Server 2005 (9.x) sp_droprole был заменен инструкцией DROP ROLE. sp_droprole включается только для совместимости с более ранними версиями SQL Server и может не поддерживаться в будущем выпуске.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_droprole [ @rolename = ] N'rolename'
[ ; ]

Аргументы

[ @rolename = ] N'rolename'

Имя роли базы данных для удаления из текущей базы данных. @rolename — sysname без значения по умолчанию. @rolename уже должно существовать в текущей базе данных.

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

С помощью этой sp_droproleфункции можно удалить только роли базы данных.

Роль базы данных с существующими членами не может быть удалена. Прежде чем удалить роли базы данных, необходимо удалить всех ее членов. Чтобы удалить пользователей из роли, используйте sp_droprolemember. Если все пользователи по-прежнему являются членами роли, sp_droprole отобразит эти элементы.

Фиксированные роли и общедоступная роль не могут быть удалены.

Роль нельзя удалить, если она владеет защищаемыми компонентами. Перед удалением роли приложения, которой принадлежат защищаемые объекты, следует сначала перенести данные о принадлежности защищаемых объектов или удалить эти объекты. Используется ALTER AUTHORIZATION для изменения владельца объектов, которые не должны быть удалены.

sp_droprole невозможно выполнить в рамках определяемой пользователем транзакции.

Разрешения

Требуется CONTROL разрешение на роль.

Примеры

На следующем примере показано, как удаляется роль приложения Sales.

EXEC sp_droprole 'Sales';
GO