sp_dropuser (Transact-SQL)

适用于:SQL Server

从当前数据库中删除数据库用户。 sp_dropuser 提供与早期版本的 SQL Server 的兼容性。

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 DROP U标准版R

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 (Transact-SQL)。 删除数据库用户会自动删除与该用户关联的权限,并从其成员的任何数据库角色中删除该用户。

sp_dropuser不能用于从或数据库中删除数据库所有者(dboINFORMATION_SCHEMA用户或tempdb来宾用户master 在非系统数据库中, EXEC sp_dropuser 'guest' 撤消 CONNECT 用户 来宾的权限,但不会删除用户本身。

sp_dropuser 无法在用户定义的事务中执行。

权限

需要对数据库拥有 ALTER ANY USER 权限。

示例

以下示例从当前数据库中删除用户 Albert

EXEC sp_dropuser 'Albert';
GO