共用方式為


xp_logininfo (Transact-SQL)

傳回有關 Windows 使用者和 Windows 群組的資訊。

主題連結圖示Transact-SQL 語法慣例

語法

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

引數

  • [ @acctname = ] 'account_name'
    這是獲得 SQL Server 存取權之 Windows 使用者或群組的名稱。account_name 是 sysname,預設值是 NULL。如果未指定 account_name,則會報告已被明確授與登入權限的所有 Windows 群組和 Windows 使用者。account_name 必須是完整的帳戶名稱,例如,'ADVWKS4\macraes' 或 'BUILTIN\Administrators'。

  • 'all' | 'members'
    指定是要報告有關帳戶所有權限路徑的資訊,或是要報告有關 Windows 群組成員的資訊。@option 是 varchar(10),預設值是 NULL。除非指定 all,否則只會顯示第一個權限路徑。

  • [ @privilege = ] variable_name
    這是傳回指定 Windows 帳戶權限層級的輸出參數。variable_name 是 varchar(10),預設值是 'Not wanted'。傳回的權限層級是 useradminnull

  • OUTPUT
    指定時,會將 variable_name 放在輸出參數中。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

資料行名稱

資料類型

說明

帳戶名稱

sysname

完整的 Windows 帳戶名稱。

型別

char(8)

Windows 帳戶的類型。有效值是 usergroup

權限

char(9)

SQL Server 的存取權限。有效值是 adminusernull

mapped login name

sysname

對於擁有使用者權限的使用者帳戶而言,mapped login name 會顯示 SQL Server 在以這個帳戶登入時嘗試使用的對應登入名稱,方法是使用對應的規則以及加在它前面的網域名稱。

permission path

sysname

允許帳戶存取權的群組成員資格。

備註

如果指定 account_name ,xp_logininfo 就會報告指定之 Windows 使用者或群組的最高權限層級。如果 Windows 使用者具有系統管理員和網域使用者的存取權,系統將回報這位使用者是系統管理員。如果使用者是權限層級相等的多個 Windows 群組的成員,則只會回報第一個被授與 SQL Server 存取權的群組。

如果 account_name 是有效的 Windows 使用者或群組,但該使用者或群組與 SQL Server 沒有關聯,則會傳回空的結果集。如果 account_name 不能被識別為有效的 Windows 使用者或群組,就會傳回一則錯誤訊息。

如果指定 account_name 和 all,將會傳回 Windows 使用者或群組的所有權限路徑。如果 account_name 是多個群組的成員,而所有群組都已被授與 SQL Server 存取權,則會傳回多個資料列。admin 權限資料列會在 user 權限資料列之前傳回,而且在同一個權限層級內,將會按照建立對應 SQL Server 登入的順序來傳回資料列。

如果指定 account_name 和 members,則會傳回該群組下一個層級成員的清單。如果 account_name 是本機群組,則清單會包含本機使用者、網域使用者和群組。如果 account_name 是網域帳戶,則這份清單是由網域使用者所組成。SQL Server 必須連接到網域控制器,才能擷取群組成員資格資訊。如果伺服器無法連上網域控制器,就不會傳回任何資訊。

xp_logininfo 只會從 Active Director 全域群組而不會從萬用群組傳回資訊。

權限

需要 sysadmin 固定伺服器角色中的成員資格,或具有 EXECUTE 權限的 master 資料庫中 public 固定資料庫角色的成員資格。

範例

下列範例會顯示 BUILTIN\Administrators Windows 群組的相關資訊。

EXEC xp_logininfo 'BUILTIN\Administrators'