Megosztás a következőn keresztül:


sys.database_principals (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Egy SQL Server-adatbázis minden egyes biztonsági tagjának egy sorát adja vissza.

Note

A Microsoft Entra ID-t korábban Azure Active Directorynak (Azure AD) nevezték.

Oszlopleírások

Oszlop név Adattípus Description
name sysname Az adatbázisban egyedi egyszerű név.
principal_id int Az adatbázisban egyedi egyszerű azonosító.
type char(1) Egyszerű típus:

A = Alkalmazásszerepkör

C = Tanúsítványhoz hozzárendelt felhasználó

E = Külső felhasználó a Microsoft Entra-azonosítóból

G = Windows-csoport

K = A felhasználó aszimmetrikus kulcsra van leképezve

R = Adatbázisszerepkör

S = SQL-felhasználó

U = Windows-felhasználó

X = Külső csoport a Microsoft Entra-csoportból vagy -alkalmazásokból
type_desc nvarchar(60) Az egyszerű típus leírása.

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 Akkor használandó név, ha az SQL-név nem ad meg sémát. Null érték az S, U vagy A típusú egyszerűk esetén.
create_date datetime A rendszernév létrehozásának időpontja.
modify_date datetime A rendszerbiztonsági tag utolsó módosításának időpontja.
owning_principal_id int Az ennek az egyszerűnek a tulajdonosa. Alapértelmezés szerint minden rögzített adatbázis-szerepkör a dbo tulajdonában van.
Sid varbinary(85) A rendszerbiztonsági azonosító (SID) a rendszerbiztonsági tagtól. NULL érték a SYS és AZ INFORMÁCIÓS SÉMÁK esetében.
is_fixed_role bit Ha 1, ez a sor a rögzített adatbázis-szerepkörök egyikének bejegyzését jelöli: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.
authentication_type int A következővonatkozik: SQL Server 2012 (11.x) és újabb.

A hitelesítési típust jelöli. Az alábbiakban a lehetséges értékeket és azok leírását követjük.

0 : Nincs hitelesítés
1: Példányhitelesítés
2 : Adatbázis-hitelesítés
3: Windows-hitelesítés
4: Microsoft Entra-hitelesítés
authentication_type_desc nvarchar(60) A következővonatkozik: SQL Server 2012 (11.x) és újabb.

A hitelesítési típus leírása. Az alábbiakban a lehetséges értékeket és azok leírását követjük.

NONE : Nincs hitelesítés
INSTANCE : Példányhitelesítés
DATABASE : Adatbázis-hitelesítés
WINDOWS : Windows-hitelesítés
EXTERNAL: Microsoft Entra-hitelesítés
default_language_name sysname A következővonatkozik: SQL Server 2012 (11.x) és újabb.

A rendszerbiztonsági tag alapértelmezett nyelvét jelöli.
default_language_lcid int A következővonatkozik: SQL Server 2012 (11.x) és újabb.

A rendszerbiztonsági tag alapértelmezett LCID-jének megjelölése.
allow_encrypted_value_modifications bit A következővonatkozik: SQL Server 2016 (13.x) és újabb, SQL Database.

Letiltja a titkosítási metaadatok ellenőrzését a kiszolgálón tömeges másolási műveletek során. Ez lehetővé teszi a felhasználó számára, hogy az Always Encrypted használatával titkosított adatokat tömegesen másoljon táblák vagy adatbázisok között az adatok visszafejtése nélkül. Az alapértelmezett érték ki van kapcsolva.

Remarks

A PasswordLastSetTime tulajdonságok az SQL Server összes támogatott konfigurációján elérhetők, a többi tulajdonság azonban csak akkor érhető el, ha az SQL Server Windows Server 2003-on vagy újabb rendszeren fut, és CHECK_POLICY és CHECK_EXPIRATION is engedélyezve vannak. További információt a Jelszószabályzatban talál. A principal_id értékei újra felhasználhatók abban az esetben, ha a főnevek el lettek dobva, ezért nem garantált, hogy folyamatosan növekednek.

Permissions

Minden felhasználó láthatja a saját felhasználónevet, a rendszerfelhasználókat és a rögzített adatbázis-szerepköröket. A többi felhasználó megtekintéséhez alter ANY USER vagy a felhasználó engedélyére van szükség. A felhasználó által definiált szerepkörök megtekintéséhez a szerepkör bármely módosítása vagy tagsága szükséges.

Examples

Válasz: Az adatbázis-tagok összes engedélyének felsorolása

Az alábbi lekérdezés felsorolja azokat az engedélyeket, amelyek kifejezetten megadottak vagy megtagadva az adatbázis-tagok számára.

Important

A rögzített adatbázis-szerepkörök engedélyei nem jelennek meg a sys.database_permissions. Ezért előfordulhat, hogy az adatbázisnevek további, itt nem felsorolt engedélyekkel rendelkeznek.

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: Sémaobjektumok engedélyeinek listázása adatbázison belül

Az alábbi lekérdezés a sys.objects és a sys.schemas sys.database_principals és sys.database_permissions összekapcsolja az adott sémaobjektumoknak adott vagy elutasított engedélyek listázásához.

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éldák: Azure Synapse Analytics and Analytics Platform System (PDW)

C: Az adatbázis-tagok összes engedélyének felsorolása

Az alábbi lekérdezés felsorolja azokat az engedélyeket, amelyek kifejezetten megadottak vagy megtagadva az adatbázis-tagok számára.

Important

A rögzített adatbázis-szerepkörök engedélyei nem jelennek meg sys.database_permissions. Ezért előfordulhat, hogy az adatbázisnevek további, itt nem felsorolt engedélyekkel rendelkeznek.

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: Sémaobjektumok engedélyeinek listázása az adatbázisban

Az alábbi lekérdezések sys.database_principalssys.database_permissionssys.objectssys.schemas egyesíteni és listázni kell az adott sémaobjektumoknak adott vagy elutasított engedélyeket.

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;  

Lásd még:

Főelemek (Adatbázismotor)
sys.server_principals (Transact-SQL)
biztonsági katalógusnézetek (Transact-SQL)
Tartalmazott adatbázis-felhasználók – az adatbázis hordozhatóvá tétele
Csatlakozás az Azure SQL-hez Microsoft Entra-hitelesítéssel