sp_revokelogin (Transact-SQL)

从 SQL Server 中删除使用 CREATE LOGIN、sp_grantloginsp_denylogin 为 Windows 用户或组创建的登录项。

重要说明重要提示

后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。请改用 DROP LOGIN

主题链接图标Transact-SQL 语法约定

语法

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]