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


sp_dropuser (Transact-SQL)

Удаляет пользователя из текущей базы данных. Хранимая процедура sp_dropuser обеспечивает совместимость с более ранними версиями SQL Server.

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

В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого следует использовать инструкцию DROP USER.

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

Синтаксис

sp_dropuser [ @name_in_db = ] 'user'

Аргументы

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

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

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

Замечания

Процедура sp_dropuser выполняет процедуру sp_revokedbaccess для удаления пользователя из текущей базы данных.

Используйте процедуру sp_helpuser для отображения списка имен пользователей, которые могут быть удалены из текущей базы данных.

Когда удаляется пользователь базы данных, также удаляются все псевдонимы этого пользователя. Если пользователь является владельцем пустой схемы с тем же именем, что и у пользователя, эта схема будет удалена. Если пользователь владеет любыми другими защищаемыми объектами базы данных, то он не будет удален. Необходимо сначала передать права владения объектами другому участнику. Дополнительные сведения см. в разделе ALTER AUTHORIZATION (Transact-SQL). При удалении пользователя базы данных автоматически удаляются разрешения, связанные с пользователем, а пользователь удаляется из всех ролей базы данных, членом которых он является.

Процедуру sp_dropuser нельзя использовать для удаления владельца базы данных (dbo), пользователей INFORMATION_SCHEMA или пользователя guest из базы данных master или tempdb. В несистемных базах данных инструкция EXEC sp_dropuser 'guest' отменяет разрешение CONNECT для пользователя guest. Однако сам пользователь не будет удален.

Процедуру sp_dropuser нельзя выполнять в рамках пользовательской транзакции.

Разрешения

Необходимо разрешение ALTER ANY USER для базы данных.

Примеры

В следующем примере удаляется пользователь Albert из текущей базы данных.

EXEC sp_dropuser 'Albert';
GO

См. также

Справочник

Хранимые процедуры безопасности (Transact-SQL)

sp_grantdbaccess (Transact-SQL)

DROP USER (Transact-SQL)

sp_revokedbaccess (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)