適用於: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' |'成員'
指定是要報告帳戶之所有許可權路徑的相關信息,還是報告 Windows 群組成員的相關信息。
@option為 varchar(10),預設值為 NULL
。 除非 all
指定 ,否則只會顯示第一個許可權路徑。
[ @privilege = ]'variable_name' OUTPUT
傳回指定之 Windows 帳戶許可權等級的輸出參數。
@privilege為 varchar(10),預設值為 Not wanted
。 傳回的許可權等級 user
、admin
或 null
。
指定時OUTPUT
,此選項會將@privilege放在輸出參數中。
傳回碼值
0
(成功) 或 1
(失敗)。
結果集
資料行名稱 | 資料類型 | 描述 |
---|---|---|
account name |
sysname | 完整 Windows 帳戶名稱。 |
type |
char(8) | Windows 帳戶的類型。 有效值為 user 或 group 。 |
privilege |
char(9) | SQL Server 的存取許可權。 有效值為 admin 、user 或 NULL 。 |
mapped login name |
sysname | 對於具有使用者許可權的用戶帳戶,mapped login name 顯示 SQL Server 在使用此帳戶登入時嘗試使用的對應登入名稱,方法是使用前面新增功能變數名稱的對應規則。 |
permission path |
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 全域群組傳回資訊,而不是通用群組。
權限
需要伺服器上的 CONTROL SERVER
許可權,或具有在 xp_logininfo
上授與 EXECUTE
許可權的 master
資料庫中的用戶帳戶。
範例
下列範例會顯示 Windows 群組的相關信息 BUILTIN\Administrators
。
EXECUTE xp_logininfo 'BUILTIN\Administrators';