xp_logininfo (Transact-SQL)
適用於:SQL Server
傳回 Windows 使用者和 Windows 群組的相關信息。
語法
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\macraes
或 BUILTIN\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 帳戶的類型。 有效值為 user 或 group 。 |
特權 | char(9) | SQL Server 的存取許可權。 有效值為 admin 、user 或 NULL 。 |
對應的登入名稱 | sysname | 對於具有使用者許可權的使用者帳戶, 對應的登入名稱 會顯示 SQL Server 在登入此帳戶時嘗試使用的對應登入名稱,方法是使用前面新增功能變數名稱的對應規則。 |
許可權路徑 | sysname | 允許帳戶存取的群組成員資格。 |
備註
如果 指定@acctname , xp_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';