分享方式:


sys.server_principals (Transact-SQL)

適用於:SQL Server Azure SQL Azure SQL 資料庫 Azure SQL 受控執行個體 Analytics Platform System (PDW)

包含每個伺服器層級主體的數據列。

注意

Microsoft Entra ID 先前稱為 Azure Active Directory (Azure AD)。

資料行名稱 資料類型 描述
name sysname 主體的名稱。 在伺服器內是唯一的。
principal_id int 主體的標識碼。 在伺服器內是唯一的。
sid varbinary(85) 主體的安全性標識碼(SID)。
Windows 主體的 SID 符合其 Windows SID。
Microsoft Entra 使用者身分識別的 SID 是其Microsoft Entra 對象識別碼的二進位表示法。
Microsoft Entra 群組的 SID 是其Microsoft Entra 對象識別碼的二進位表示法。
Microsoft Entra 應用程式的 SID 是其Microsoft Entra 用戶端識別碼的二進位表示法。
type char(1) 主體類型:

S = SQL 登入
R = 伺服器角色

可在 SQL Server、Azure SQL 受控執行個體 和 PDW 中使用 (在 Azure SQL 資料庫 中預覽版):
E = 來自 Microsoft Entra ID 的外部登入或應用程式
X = 來自 Microsoft Entra ID 的外部群組

可在 SQL Server、Azure SQL 受控執行個體 和 PDW 中使用(而非 Azure SQL 資料庫):
U = Windows 登入
G = Windows 群組
C = 對應至憑證的登入
K = 對應至非對稱金鑰的登入
type_desc nvarchar(60) 主體類型的描述:

SQL_LOGIN
SERVER_ROLE

可在 SQL Server、Azure SQL 受控執行個體 和 PDW 中使用 (在 Azure SQL 資料庫 中預覽版):
EXTERNAL_LOGIN
EXTERNAL_GROUP

可在 SQL Server、Azure SQL 受控執行個體 和 PDW 中使用(而非 Azure SQL 資料庫):
WINDOWS_LOGIN
WINDOWS_GROUP
CERTIFICATE_MAPPED_LOGIN
ASYMMETRIC_KEY_MAPPED_LOGIN
is_disabled int 1 = 已停用登入。
0 = 已啟用登入。
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 或角色的成員資格。

在 Azure SQL 資料庫 中,只有下列主體可以看到所有登入:

  • 中伺服器角色 ##MS_LoginManager## 或特殊資料庫角色 loginmanager 的成員 master
  • Microsoft Entra 系統管理員和 SQL Server 管理員

目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。 如需相關資訊,請參閱 Metadata Visibility Configuration

範例

下列查詢會列出明確授與或拒絕伺服器主體的許可權。

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;  

重要

固定伺服器角色的許可權(非公用)不會出現在sys.server_permissions中。 因此,伺服器主體可能會有此處未列出的其他許可權。

安全性目錄檢視 (Transact-SQL)
目錄檢視 (Transact-SQL)
主體 (資料庫引擎)
權限階層 (Database Engine)