xp_logininfo (Transact-SQL)

适用于: 是SQL Server(所有支持的版本)

返回有关 Windows 用户和 Windows 组的信息。

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

语法

  
xp_logininfo [ [ @acctname = ] 'account_name' ]   
     [ , [ @option = ] 'all' | 'members' ]   
     [ , [ @privilege = ] variable_name OUTPUT]  

参数

[ @acctname = ] 'account_name'有权访问 的用户Windows组的名称 SQL Server 。 account_namesysname, 默认值为 NULL。 如果 account_name, 则报告所有Windows组Windows已显式授予登录权限的用户。 account_name 必须完全限定。 例如,“ADVWKS4\macraes”或“BUILTIN\Administrators”。

"all" | "members"
指定是报告有关帐户的所有权限路径的信息,还是报告有关 Windows 组成员的信息。 @ 选项varchar (10),默认值为 NULL。 除非 指定所有 权限,否则只显示第一个权限路径。

[ @privilege = ] variable_name一个输出参数,它返回指定帐户Windows级别。 variable_namevarchar (10) , 默认值为"不需要"。 返回的特权级别为 **用户、**管理员null。

OUTPUT
指定后,将 variable_name 参数中。

返回代码值

0(成功)或 1(失败)

结果集

列名称 数据类型 说明
帐户名称 sysname 完全限定的 Windows 帐户名。
type char (8) Windows 帐户类型。 有效值为 用户或****组
特权 char(9) SQL Server 的访问特权。 有效值为 admin 、usernull
mapped login name sysname 对于具有用户特权的用户帐户,映射的登录名显示在此帐户登录时尝试使用的映射登录名,该登录名之前添加的域名为映射 SQL Server 规则。
permission path sysname 使帐户得到访问权限的组成员身份。

注解

如果 *account_name,*则xp_logininfo 报告指定用户或Windows的最高特权级别。 如果 Windows 用户同时拥有系统管理员和域用户访问权限,则会报告为系统管理员。 如果该用户是多个具有相等特权级别的 Windows 组的成员,则只报告第一个被授予 SQL Server 访问权限的组。

如果 account_name 登录名Windows用户或组的有效用户或组,则返回 SQL Server 空的结果集。 如果 account_name 标识为用户Windows组的有效用户或组,则返回错误消息。

如果 account_name和全部 指定,则返回Windows用户或组的所有权限路径。 如果 account_name 是多个组的成员,所有这些组都被授予了对 的访问权限, SQL Server 则返回多个行。 管理员 特权 行在用户特权行之前返回,在特权级别行中按创建相应登录 SQL Server 名的顺序返回。

如果 account_name和成员, 则返回该组的下一级别成员的列表。 如果 account_name 本地组,则列表可以包含本地用户、域用户和组。 如果 account_name 域帐户,则列表由域用户创建。 SQL Server 必须连接到域控制器,才能检索组成员身份信息。 如果该服务器无法联系域控制器,则不返回任何信息。

xp_logininfo 仅返回 Active Directory 全局组的信息,而不是从通用组返回信息。

权限

要求具有 sysadmin 固定 服务器角色的成员身份或 master 数据库中公共固定数据库角色的成员身份,并授予 EXECUTE 权限。

示例

以下示例显示有关组Windows BUILTIN\Administrators 的信息。

EXEC xp_logininfo 'BUILTIN\Administrators';  

另请参阅

sp_denylogin (Transact-SQL)
sp_grantlogin (Transact-SQL)
sp_revokelogin (Transact-SQL)
系统存储过程 (Transact-SQL)
Transact-(的常规扩展存储SQL)