分享方式:


xp_logininfo (Transact-SQL)

適用於:SQL Server

傳回 Windows 使用者和 Windows 群組的相關信息。

Transact-SQL 語法慣例

語法

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

引數

[ @acctname = ] '@acctname'

授與 SQL Server 存取權的 Windows 使用者或群組名稱。 @acctname為 sysname,預設值為 NULL。 如果未 指定@acctname ,則會報告已明確授與登入許可權的所有 Windows 群組和 Windows 使用者。 @acctname必須完整。 例如,CONTOSO\macraesBUILTIN\Administrators

[ @option = ] 'all' |'members' ]

指定是要報告帳戶之所有許可權路徑的相關信息,還是報告 Windows 群組成員的相關信息。 @option為 varchar(10),預設值為 NULL。 除非 all 指定 ,否則只會顯示第一個許可權路徑。

[ @privilege = ] 'variable_name' OUTPUT ]

傳回指定之 Windows 帳戶許可權等級的輸出參數。 @privilege為 varchar(10),預設值為 Not wanted。 傳回的許可權等級是 用戶系統管理員Null

指定時OUTPUT,此選項會將@privilege放在輸出參數中。

傳回碼值

0 (成功) 或 1 (失敗)。

結果集

資料行名稱 資料類型 描述
帳戶名稱 sysname 完整 Windows 帳戶名稱。
type char(8) Windows 帳戶的類型。 有效值為 usergroup
特權 char(9) SQL Server 的存取許可權。 有效值為 adminuserNULL
對應的登入名稱 sysname 對於具有使用者許可權的使用者帳戶, 對應的登入名稱 會顯示 SQL Server 在登入此帳戶時嘗試使用的對應登入名稱,方法是使用前面新增功能變數名稱的對應規則。
許可權路徑 sysname 允許帳戶存取的群組成員資格。

備註

如果 指定@acctnamexp_logininfo 則會報告指定之 Windows 使用者或群組的最高許可權等級。 如果 Windows 用戶同時具有系統管理員和網域使用者的存取權,則會回報為系統管理員。 如果使用者是多個相同許可權等級的 Windows 群組成員,則只會報告第一次授與 SQL Server 存取權的群組。

如果 @acctname 是與 SQL Server 登入無關的有效 Windows 使用者或群組,則會傳回空的結果集。 如果 @acctname 無法識別為有效的 Windows 使用者或群組,則會傳回錯誤訊息。

如果 指定了 @acctname 和 all ,則會傳回 Windows 使用者或群組的所有許可權路徑。 如果 @acctname 是多個群組的成員,所有群組都已獲授與 SQL Server 的存取權,則會傳回多個數據列。 admin許可權數據列會在許可權數據列之前user傳回,而且在許可權層級內,會依照建立對應 SQL Server 登入的順序傳回數據列。

如果 指定了 @acctname 和 members ,則會傳回群組的下一層成員清單。 如果 @acctname 是本地組,清單可以包含本機使用者、網域使用者和群組。 如果 @acctname 是網域帳戶,則清單是由網域用戶所組成。 SQL Server 必須連線到域控制器,才能擷取群組成員資格資訊。 如果伺服器無法連絡域控制器,則不會傳回任何資訊。

xp_logininfo 只會從 Active Directory 全域群組傳回資訊,而不是通用群組。

權限

需要系統管理員固定伺服器角色中的成員資格,或已授與 EXECUTE 許可權之資料庫中公用固定資料庫角色master的成員資格

範例

下列範例會顯示 Windows 群組的相關信息 BUILTIN\Administrators

EXEC xp_logininfo 'BUILTIN\Administrators';