sp_revokelogin (Transact-SQL)
从 SQL Server 中删除使用 CREATE LOGIN、sp_grantlogin 或 sp_denylogin 为 Windows 用户或组创建的登录项。
重要提示 |
---|
后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。请改用 DROP LOGIN。 |
语法
sp_revokelogin [ @loginame= ] 'login'
参数
- [ @loginame = ] 'login'
Windows 用户或组的名称。login 的数据类型为 sysname,无默认值。login 可以是格式为 Computer name\User or Domain\User 的任何现有 Windows 用户名或组。
返回代码值
0(成功)或 1(失败)
注释
sp_revokelogin 禁用通过 login 参数所指定的帐户建立的连接。但通过 Windows 组中的成员身份被授权访问 SQL Server 实例的 Windows 用户在其单独访问权限被撤消后仍可作为组来连接。类似地,如果 login 参数指定了 Windows 组的名称,则该组中已被分别授权访问 SQL Server 实例的成员仍然可以连接。
例如,如果 Windows 用户 ADVWORKS\john 是 Windows 组 ADVWORKS\Admins 的成员,并且 sp_revokelogin 撤消了 ADVWORKS\john 的访问权限:
sp_revokelogin [ADVWORKS\john]
如果 ADVWORKS\Admins 已被授权访问 SQL Server 实例,则用户 ADVWORKS\john 仍然可以连接。类似地,如果 Windows 组 ADVWORKS\Admins 的访问权限被撤消,但 ADVWORKS\john 被授予了访问权限,则 ADVWORKS\john 仍然可以连接。
使用 sp_denylogin 可显式禁止用户连接到 SQL Server 实例,而不论其 Windows 组成员身份如何。
在用户定义事务内部不能执行 sp_revokelogin。
权限
需要对服务器具有 ALTER ANY LOGIN 权限。
示例
以下示例删除 Windows 用户 Corporate\MollyA 的登录项。
EXEC sp_revokelogin 'Corporate\MollyA'
或
EXEC sp_revokelogin [Corporate\MollyA]