sp_dropuser (Transact-SQL)
从当前数据库中删除数据库用户。sp_dropuser 提供可与 SQL Server 早期版本兼容。
重要提示: |
---|
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 DROP USER。 |
语法
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 用户,也不能从 master 或 tempdb 数据库中删除 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)