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


sp_droprole (Transact-SQL)

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

Важное примечаниеВажно!

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

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_droprole [ @rolename= ] 'role'

Аргументы

  • [ @rolename = ] 'role'
    Имя роли, удаляемой из базы данных. Аргумент role имеет тип sysname и не имеет значения по умолчанию. Аргумент role должен существовать в текущей базе данных.

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

0 (успешное завершение) или 1 (ошибка)

Замечания

При помощи процедуры sp_droprole можно удалять только роли базы данных.

Роль базы данных, содержащая члены, не может быть удалена. Прежде чем удалить роли базы данных, необходимо удалить всех ее членов. Для удаления пользователей из роли используйте процедуру sp_droprolemember. В случае если еще имеются пользователи, являющиеся членами роли, инструкция sp_droprole отображает их.

Предопределенные роли и роль public не могут быть удалены.

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

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

Разрешения

Необходимо разрешение CONTROL на роль.

Примеры

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

EXEC sp_droprole 'Sales';
GO