sp_dropuser (Transact-SQL)
适用范围:SQL Server
从当前数据库中删除数据库用户。 sp_dropuser
提供与早期版本的 SQL Server 的兼容性。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 DROP USER 。
语法
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_dropuser
sp_revokedbaccess
执行以从当前数据库中删除用户。
用于 sp_helpuser
显示可从当前数据库中删除的用户名列表。
删除数据库用户时,将同时删除该用户的所有别名。 如果用户拥有与用户同名的空架构,则会删除该架构。 如果用户拥有数据库中的任何其他安全对象,则不会删除该用户。 必须首先将对象的所有权转让给其他主体。 有关详细信息,请参阅 ALTER AUTHORIZATION。 删除数据库用户会自动删除与该用户关联的权限,并从其成员的任何数据库角色中删除该用户。
sp_dropuser
不能用于从或数据库中删除数据库所有者(dbo)INFORMATION_SCHEMA
用户或tempdb
来宾用户master
。 在非系统数据库中, EXEC sp_dropuser 'guest'
撤消 CONNECT
用户 来宾的权限,但不会删除用户本身。
sp_dropuser
无法在用户定义的事务中执行。
权限
需要对数据库拥有 ALTER ANY USER
权限。
示例
以下示例从当前数据库中删除用户 Albert
。
EXEC sp_dropuser 'Albert';
GO