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 用户,也不能从 mastertempdb 数据库中删除 guest 用户。 在非系统数据库中,EXEC sp_dropuser 'guest' 将撤消用户 guest 的 CONNECT 权限。 但不会删除用户本身。

不能在用户定义的事务内执行 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)