Sdílet prostřednictvím


sys.database_principals (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Vrátí řádek pro každý objekt zabezpečení v databázi SQL Serveru.

Note

Microsoft Entra ID se dříve označovala jako Azure Active Directory (Azure AD).

Popisy sloupců

Název sloupce Datový typ Description
name sysname Název objektu zabezpečení, jedinečný v rámci databáze.
principal_id int ID objektu zabezpečení, jedinečné v rámci databáze.
type char(1) Typ objektu zabezpečení:

A = Aplikační role

C = Uživatel namapovaný na certifikát

E = Externí uživatel z Microsoft Entra ID

G = skupina Windows

K = Uživatel namapovaný na asymetrický klíč

R = role databáze

S = uživatel SQL

U = uživatel Windows

X = Externí skupina ze skupiny Nebo aplikací Microsoft Entra
type_desc nvarchar(60) Popis typu objektu zabezpečení

APPLICATION_ROLE

CERTIFICATE_MAPPED_USER

EXTERNAL_USER

WINDOWS_GROUP

ASYMMETRIC_KEY_MAPPED_USER

DATABASE_ROLE

SQL_USER

WINDOWS_USER

EXTERNAL_GROUPS
default_schema_name sysname Název, který se má použít, když název SQL nezadá schéma. Hodnota Null pro objekty zabezpečení, které nejsou typu S, U nebo A.
create_date datetime Čas vytvoření objektu zabezpečení
modify_date datetime Čas poslední změny objektu zabezpečení.
owning_principal_id int ID objektu zabezpečení, který tento objekt zabezpečení vlastní. Všechny pevné databázové role ve výchozím nastavení vlastní dbo .
sid varbinary(85) IDENTIFIKÁTOR SID (identifikátor zabezpečení) objektu zabezpečení. HODNOTA NULL pro SCHÉMATA SYS a INFORMATION.
is_fixed_role bit Pokud 1, tento řádek představuje položku pro jednu z pevných databázových rolí: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.
authentication_type int platí pro: SQL Server 2012 (11.x) a novější.

Označuje typ ověřování. Níže jsou uvedené možné hodnoty a jejich popisy.

0: Bez ověřování
1: Ověřování instancí
2: Ověřování databáze
3: Ověřování systému Windows
4: Ověřování Microsoft Entra
authentication_type_desc nvarchar(60) platí pro: SQL Server 2012 (11.x) a novější.

Popis typu ověřování Níže jsou uvedené možné hodnoty a jejich popisy.

NONE : Bez ověřování
INSTANCE : Ověřování instancí
DATABASE : Ověřování databáze
WINDOWS : Ověřování systému Windows
EXTERNAL: Ověřování Microsoft Entra
default_language_name sysname platí pro: SQL Server 2012 (11.x) a novější.

Označuje výchozí jazyk pro tento objekt zabezpečení.
default_language_lcid int platí pro: SQL Server 2012 (11.x) a novější.

Označuje výchozí LCID pro tento objekt zabezpečení.
allow_encrypted_value_modifications bit platí pro: SQL Server 2016 (13.x) a novější, SQL Database.

Potlačí kontroly kryptografických metadat na serveru v operacích hromadného kopírování. To uživateli umožňuje hromadně kopírovat data zašifrovaná pomocí funkce Always Encrypted, mezi tabulkami nebo databázemi bez dešifrování dat. Výchozí hodnota je VYPNUTÁ.

Remarks

Vlastnosti PasswordLastSetTime jsou k dispozici ve všech podporovaných konfiguracích SQL Serveru, ale ostatní vlastnosti jsou k dispozici pouze v případě, že sql Server běží v systému Windows Server 2003 nebo novější a jsou povoleny CHECK_POLICY i CHECK_EXPIRATION. Další informace najdete v tématu Zásady hesel . Hodnoty principal_id lze opakovaně použít v případě, že byly objekty zabezpečení vyřazeny, a proto není zaručeno, že se stále zvyšuje.

Permissions

Každý uživatel může zobrazit svoje vlastní uživatelské jméno, systémové uživatele a pevné databázové role. Pokud chcete zobrazit jiné uživatele, vyžaduje ALTER ANY USER nebo oprávnění pro uživatele. Pokud chcete zobrazit uživatelem definované role, vyžaduje ALTER ANY ROLE nebo členství v této roli.

Examples

A: Výpis všech oprávnění instančních objektů databáze

Následující dotaz zobrazí seznam oprávnění explicitně udělených nebo odepřených objektům zabezpečení databáze.

Important

Oprávnění pevných databázových rolí se v sys.database_permissions nezobrazují. Instanční objekty databáze proto můžou mít další oprávnění, která tady nejsou uvedená.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pr.authentication_type_desc, pe.state_desc, pe.permission_name  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id;  

B: Výpis oprávnění k objektům schématu v databázi

Následující dotaz připojí sys.database_principals a sys.database_permissions k sys.objects a sys.schemas a zobrazí seznam oprávnění udělených nebo odepřených konkrétním objektům schématu.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pr.authentication_type_desc, pe.state_desc,   
    pe.permission_name, s.name + '.' + o.name AS ObjectName  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id  
JOIN sys.objects AS o  
    ON pe.major_id = o.object_id  
JOIN sys.schemas AS s  
    ON o.schema_id = s.schema_id;  

Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

C: Výpis všech oprávnění instančních objektů databáze

Následující dotaz zobrazí seznam oprávnění explicitně udělených nebo odepřených objektům zabezpečení databáze.

Important

Oprávnění pevných databázových rolí se v sys.database_permissionsnezobrazují . Instanční objekty databáze proto můžou mít další oprávnění, která tady nejsou uvedená.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pr.authentication_type_desc, pe.state_desc, pe.permission_name  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id;  

D: Výpis oprávnění k objektům schématu v databázi

Následující dotaz spojí sys.database_principals a sys.database_permissionssys.objectssys.schemas vypíše oprávnění udělená nebo odepřená konkrétním objektům schématu.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pr.authentication_type_desc, pe.state_desc,   
    pe.permission_name, s.name + '.' + o.name AS ObjectName  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id  
JOIN sys.objects AS o  
    ON pe.major_id = o.object_id  
JOIN sys.schemas AS s  
    ON o.schema_id = s.schema_id;  

Viz také

Hlavní subjekty (databázový stroj)
sys.server_principals (Transact-SQL)
Zobrazení katalogu zabezpečení (Transact-SQL)
Uživatelé databáze s omezením – zajištění přenositelnosti databáze
Připojení k Azure SQL pomocí ověřování Microsoft Entra