Udostępnij za pomocą


sys.server_principals (Transact-SQL)

Dotyczy:programu SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)

Zawiera wiersz dla każdego podmiotu zabezpieczeń na poziomie serwera.

Uwaga / Notatka

Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).

Nazwa kolumny Typ danych Description
name sysname Nazwa podmiotu zabezpieczeń. Jest unikatowa na serwerze.
principal_id int Identyfikator podmiotu zabezpieczeń. Jest unikatowa na serwerze.
Sid varbinary(85) Identyfikator zabezpieczeń (SID) podmiotu zabezpieczeń.
Identyfikator SID podmiotu zabezpieczeń systemu Windows jest zgodny z ich identyfikatorem SID systemu Windows.
Identyfikator SID tożsamości użytkownika firmy Microsoft Entra jest binarną reprezentacją identyfikatora obiektu Microsoft Entra.
Identyfikator SID grupy Entra firmy Microsoft jest binarną reprezentacją identyfikatora obiektu Microsoft Entra.
Identyfikator SID aplikacji Microsoft Entra jest binarną reprezentacją identyfikatora klienta Firmy Microsoft Entra.
type char(1) Typ podmiotu zabezpieczeń:

S = identyfikator logowania SQL
R = rola serwera

Dostępne w usługach SQL Server, Azure SQL Managed Instance i PDW (w wersji zapoznawczej w usłudze Azure SQL Database):
E = identyfikator logowania zewnętrznego lub aplikacji z identyfikatora Entra firmy Microsoft
X = grupa zewnętrzna z identyfikatora Entra firmy Microsoft

Dostępne w usługach SQL Server, Azure SQL Managed Instance i PDW (a nie w usłudze Azure SQL Database):
U = Logowanie do systemu Windows
G = grupa systemu Windows
C = Logowanie mapowane na certyfikat
K = Logowanie mapowane na klucz asymetryczny
type_desc nvarchar(60) Opis typu podmiotu zabezpieczeń:

SQL_LOGIN
SERVER_ROLE

Dostępne w usługach SQL Server, Azure SQL Managed Instance i PDW (w wersji zapoznawczej w usłudze Azure SQL Database):
EXTERNAL_LOGIN
EXTERNAL_GROUP

Dostępne w usługach SQL Server, Azure SQL Managed Instance i PDW (a nie w usłudze Azure SQL Database):
WINDOWS_LOGIN
WINDOWS_GROUP
CERTIFICATE_MAPPED_LOGIN
ASYMMETRIC_KEY_MAPPED_LOGIN
is_disabled int 1 = Logowanie jest wyłączone.
0 = logowanie jest włączone.
create_date datetime Godzina utworzenia podmiotu zabezpieczeń.
modify_date datetime Czas ostatniej modyfikacji definicji podmiotu zabezpieczeń.
default_database_name sysname Domyślna baza danych dla podmiotu zabezpieczeń.
default_language_name sysname Domyślny język podmiotu zabezpieczeń.
credential_id int Identyfikator poświadczenia skojarzonego z podmiotem zabezpieczeń. Jeśli żadne poświadczenia nie są skojarzone z tym podmiotem zabezpieczeń, credential_id ma wartość NULL.
owning_principal_id int Principal_id właściciela roli serwera. Wartość NULL, jeśli podmiot zabezpieczeń nie jest rolą serwera.
is_fixed_role bit Zwraca wartość 1, jeśli podmiot zabezpieczeń jest jedną z wbudowanych ról serwera z stałymi uprawnieniami. Aby uzyskać więcej informacji, zobacz roleServer-Level.

Permissions

Każde logowanie może zobaczyć własną nazwę logowania, nazwy logowania systemu i stałe role serwera. Wyświetlanie innych identyfikatorów logowania wymaga uprawnienia ALTER ANY LOGIN lub logowania. Wyświetlanie ról serwera zdefiniowanych przez użytkownika wymaga ZMIANY DOWOLNEJ ROLI SERWERA lub członkostwa w roli.

W usłudze Azure SQL Database tylko następujące podmioty zabezpieczeń mogą zobaczyć wszystkie identyfikatory logowania:

  • członkowie roli serwera ##MS_LoginManager## lub menedżer logowania roli specjalnej bazy danych master
  • administrator usługi Microsoft Entra i administrator programu SQL Server

Widoczność metadanych w widokach katalogu jest ograniczona do obiektów, których właścicielem jest użytkownik lub w stosunku do których użytkownik ma jakieś uprawnienia. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.

Uwagi

W usłudze Azure SQL Database identyfikatory logowania SQL nie są utrwalane w sys.server_principals widoku wykazu. W związku z tym aby pobrać członkostwo roli na poziomie serwera w usłudze Azure SQL Database, należy dołączyć widok sys.sql_logins wykazu.

Przykłady

Poniższe zapytanie zawiera listę uprawnień jawnie udzielonych lub odrzuconych podmiotom zabezpieczeń serwera.

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;  

Ważne

Uprawnienia stałych ról serwera (innych niż publiczne) nie są wyświetlane w sys.server_permissions. W związku z tym podmioty zabezpieczeń serwera mogą mieć dodatkowe uprawnienia, których nie ma tutaj.

Widoki wykazu zabezpieczeń (Transact-SQL)
Widoki wykazu (Transact-SQL)
główne podmioty (silnik bazy danych)
Hierarchia uprawnień (aparat bazy danych)