Aracılığıyla paylaş


sys.database_principals (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

SQL Server veritabanındaki her güvenlik sorumlusu için bir satır döndürür.

Note

Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.

Sütun açıklamaları

Sütun adı Veri türü Description
name sysname Veritabanında benzersiz olan sorumlunun adı.
principal_id int Veritabanında benzersiz olan sorumlunun kimliği.
type char(1) Asıl tür:

A = Uygulama rolü

C = Bir sertifikayla eşlenen kullanıcı

E = Microsoft Entra Id'den dış kullanıcı

G = Windows grubu

K = Asimetrik anahtara eşlenen kullanıcı

R = Veritabanı rolü

S = SQL kullanıcısı

U = Windows kullanıcısı

X = Microsoft Entra grubundan veya uygulamalarından dış grup
type_desc nvarchar(60) Asıl türün açıklaması.

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 SQL adı bir şema belirtmediğinde kullanılacak ad. S, U veya A türünde olmayan sorumlular için null.
create_date datetime Sorumlunun oluşturulduğu saat.
modify_date datetime Sorumlunun en son değiştirildiği saat.
owning_principal_id int Bu sorumlunun sahibi olan sorumlunun kimliği. Tüm sabit Veritabanı Rolleri varsayılan olarak dbo'ya aittir.
sıd varbinary(85) Sorumlunun SID (Güvenlik Tanımlayıcısı). SYS ve BİlGİ ŞEMALARı için NULL.
is_fixed_role bit 1 ise, bu satır sabit veritabanı rollerinden birinin girdisini temsil eder: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.
authentication_type int için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

Kimlik doğrulama türünü gösterir. Olası değerler ve açıklamaları aşağıdadır.

0 : Kimlik doğrulaması yok
1 : Örnek kimlik doğrulaması
2 : Veritabanı kimlik doğrulaması
3 : Windows kimlik doğrulaması
4 : Microsoft Entra kimlik doğrulaması
authentication_type_desc nvarchar(60) için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

Kimlik doğrulama türünün açıklaması. Olası değerler ve açıklamaları aşağıdadır.

NONE : Kimlik doğrulaması yok
INSTANCE : Örnek kimlik doğrulaması
DATABASE : Veritabanı kimlik doğrulaması
WINDOWS : Windows kimlik doğrulaması
EXTERNAL: Microsoft Entra kimlik doğrulaması
default_language_name sysname için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

Bu sorumlu için varsayılan dili gösterir.
default_language_lcid int için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

Bu sorumlu için varsayılan LCID'yi bildirir.
allow_encrypted_value_modifications bit için geçerlidir: SQL Server 2016 (13.x) ve üzeri, SQL Veritabanı.

Toplu kopyalama işlemlerinde sunucuda şifreleme meta veri denetimlerini gizler. Bu, kullanıcının verilerin şifresini çözmeden Always Encrypted kullanılarak şifrelenmiş verileri tablolar veya veritabanları arasında toplu olarak kopyalamasını sağlar. Varsayılan değer KAPALI'dır.

Remarks

PasswordLastSetTime özellikleri SQL Server'ın desteklenen tüm yapılandırmalarında kullanılabilir, ancak diğer özellikler yalnızca SQL Server Windows Server 2003 veya sonraki sürümlerinde çalıştırıldığında ve hem CHECK_POLICY hem de CHECK_EXPIRATION etkinleştirildiğinde kullanılabilir. Daha fazla bilgi için bkz. Parola İlkesi . principal_id değerleri, sorumluların bırakılması durumunda yeniden kullanılabilir ve bu nedenle sürekli olarak artacağı garanti edilmemektedir.

Permissions

Herhangi bir kullanıcı kendi kullanıcı adını, sistem kullanıcılarını ve sabit veritabanı rollerini görebilir. Diğer kullanıcıları görmek için ALTER ANY USER veya kullanıcı üzerinde bir izin gerekir. Kullanıcı tanımlı rolleri görmek için ROLDE ALTER VEYA üyelik gerekir.

Examples

Y: Veritabanı sorumlularının tüm izinlerini listeleme

Aşağıdaki sorgu, veritabanı sorumlularına açıkça verilen veya reddedilen izinleri listeler.

Important

Sabit veritabanı rollerinin izinleri sys.database_permissions görünmez. Bu nedenle, veritabanı sorumluları burada listelenmeyen ek izinlere sahip olabilir.

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: Veritabanı içindeki şema nesneleri üzerindeki izinleri listeleme

Aşağıdaki sorgu, belirli şema nesnelerine verilen veya reddedilen izinleri listelemek için sys.objects ve sys.schemas sys.database_principals ve sys.database_permissions birleştirir.

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;  

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

C: Veritabanı sorumlularının tüm izinlerini listeleme

Aşağıdaki sorgu, veritabanı sorumlularına açıkça verilen veya reddedilen izinleri listeler.

Important

Sabit veritabanı rollerinin izinleri sys.database_permissionsiçinde görünmez. Bu nedenle, veritabanı sorumluları burada listelenmeyen ek izinlere sahip olabilir.

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: Veritabanı içindeki şema nesneleri üzerindeki izinleri listeleme

Aşağıdaki sorgu, belirli şema nesnelerine sys.database_principals verilen veya reddedilen izinleri listelemek için ve sys.database_permissionssys.objects ile birleştirirsys.schemas.

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;  

Ayrıca Bkz.

Sorumluları (Veritabanı Altyapısı)
sys.server_principals (Transact-SQL)
Güvenlik Kataloğu Görünümleri (Transact-SQL)
Kapsanan Veritabanı Kullanıcıları: Veritabanınızı Taşınabilir Hale Getirme
Microsoft Entra kimlik doğrulaması ile Azure SQL'e bağlanma