sys.server_principals (Transact-SQL)
針對每一個伺服器層級的主體,各包含一個資料列。
適用於:SQL Server (SQL Server 2008 至目前版本)。 |
資料行名稱 |
資料類型 |
描述 |
---|---|---|
name |
sysname |
主體的名稱。 在伺服器中,這是唯一的。 |
principal_id |
int |
主體的識別碼。 在伺服器中,這是唯一的。 |
sid |
varbinary(85) |
主體的 SID (安全性識別碼)。 如果是 Windows 主體,則與 Windows SID 相符。 |
型別 |
char(1) |
主體類型: S = SQL 登入 U = Windows 登入 G = Windows 群組 R = 伺服器角色 C = 對應至憑證的登入 K = 對應至非對稱金鑰的登入 |
type_desc |
nvarchar(60) |
主體類型的描述: SQL_LOGIN WINDOWS_LOGIN WINDOWS_GROUP SERVER_ROLE CERTIFICATE_MAPPED_LOGIN ASYMMETRIC_KEY_MAPPED_LOGIN |
is_disabled |
int |
1 = 登入已停用。 |
create_date |
datetime |
建立主體的時間。 |
modify_date |
datetime |
上次修改主體定義的時間。 |
default_database_name |
sysname |
這個主體的預設資料庫。 |
default_language_name |
sysname |
這個主體的預設語言。 |
credential_id |
int |
與這個主體相關聯的認證識別碼。 如果沒有與這個主體相關聯的認證,則 credential_id 為 NULL。 |
owning_principal_id |
int |
伺服器角色擁有者的 principal_id。 如果主體不是伺服器角色,則為 NULL。 |
is_fixed_role |
bit |
如果主體是其中一個固定伺服器角色,則傳回 1。 如需詳細資訊,請參閱<伺服器層級角色>。 |
權限
任何登入都可以查看他們自己的登入名稱、系統登入和固定伺服器角色。 若要查看其他登入,則需要 ALTER ANY LOGIN 或該登入的權限。 若要查看使用者定義伺服器角色,則需要 ALTER ANY SERVER ROLE 或該角色的成員資格。
目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。如需詳細資訊,請參閱<中繼資料可見性組態>。
範例
下列查詢會列出已明確授與或拒絕伺服器主體的權限。
重要事項 |
---|
固定伺服器角色的權限並未出現在 sys.server_permissions 中。因此,伺服器主體可能仍有其他未列於此處的權限。 |
SELECT pr.principal_id, pr.name, pr.type_desc,
pe.state_desc, pe.permission_name
FROM sys.server_principals AS pr
JOIN sys.server_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id;