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


sp_dropuser (Transact-SQL)

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

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

Внимание

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

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

Синтаксис

sp_dropuser [ @name_in_db = ] N'name_in_db'
[ ; ]

Аргументы

[ @name_in_db = ] N'name_in_db'

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

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

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

Замечания

sp_dropusersp_revokedbaccess выполняется для удаления пользователя из текущей базы данных.

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

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

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

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

Разрешения

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

Примеры

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

EXEC sp_dropuser 'Albert';
GO