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