sys.database_principals (Transact-SQL)sys.database_principals (Transact-SQL)

SI APPLICA A: sìSQL Server (a partire dalla versione 2008) sìDatabase SQL di AzuresìAzure SQL Data Warehouse sìParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Viene restituita una riga per ogni entità di sicurezza in un database di SQL ServerSQL Server.Returns a row for each security principal in a SQL ServerSQL Server database.

Nome colonnaColumn name Tipo di datiData type DescriptionDescription
namename sysnamesysname Nome dell'entità, univoco all'interno del database.Name of principal, unique within the database.
principal_idprincipal_id intint ID dell'entità, univoco all'interno del database.ID of principal, unique within the database.
typetype char(1)char(1) Tipo di entità:Principal type:

A = Ruolo applicazioneA = Application role

C = Utente sul quale è stato eseguito il mapping a un certificatoC = User mapped to a certificate

E = utente esterno da Azure Active DirectoryE = External user from Azure Active Directory

G = Gruppo di WindowsG = Windows group

K = Utente sul quale è stato eseguito il mapping a una chiave asimmetricaK = User mapped to an asymmetric key

R = Ruolo del databaseR = Database role

S = Utente SQLS = SQL user

U = Utente di WindowsU = Windows user

X = gruppo esterno da applicazioni o il gruppo di Azure Active DirectoryX = External group from Azure Active Directory group or applications
type_desctype_desc nvarchar(60)nvarchar(60) Descrizione del tipo dell'entità.Description of principal type.

APPLICATION_ROLEAPPLICATION_ROLE

CERTIFICATE_MAPPED_USERCERTIFICATE_MAPPED_USER

EXTERNAL_USEREXTERNAL_USER

WINDOWS_GROUPWINDOWS_GROUP

ASYMMETRIC_KEY_MAPPED_USERASYMMETRIC_KEY_MAPPED_USER

DATABASE_ROLEDATABASE_ROLE

SQL_USERSQL_USER

WINDOWS_USERWINDOWS_USER

EXTERNAL_GROUPSEXTERNAL_GROUPS
default_schema_namedefault_schema_name sysnamesysname Nome da utilizzare quando il nome SQL non specifica uno schema.Name to be used when SQL name does not specify a schema. Restituisce Null per entità non di tipo S, U o A.Null for principals not of type S, U, or A.
create_datecreate_date datetimedatetime Ora di creazione dell'entità.Time at which the principal was created.
modify_datemodify_date datetimedatetime Ora dell'ultima modifica dell'entità.Time at which the principal was last modified.
owning_principal_idowning_principal_id intint ID dell'entità proprietaria dell'entità corrente.ID of the principal that owns this principal. Tutte le entità, ad eccezione dei ruoli di Database devono essere proprietario dbo.All principals except Database Roles must be owned by dbo.
sidsid varbinary(85)varbinary(85) ID di sicurezza (SID) dell'entità.SID (Security Identifier) of the principal. NULL per SYS e INFORMATION SCHEMAS.NULL for SYS and INFORMATION SCHEMAS.
is_fixed_roleis_fixed_role bitbit Se è 1, questa riga rappresenta una voce per uno dei ruoli predefiniti del database, ovvero db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.If 1, this row represents an entry for one of the fixed database roles: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.
authentication_typeauthentication_type intint Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Indica il tipo di autenticazione.Signifies authentication type. Di seguito sono i valori possibili e le relative descrizioni.The following are the possible values and their descriptions.

0: Nessuna autenticazione0 : No authentication
1: autenticazione istanza1 : Instance authentication
2: l'autenticazione del database2 : Database authentication
3: l'autenticazione di Windows3 : Windows Authentication
denominata authentication_type_descauthentication_type_desc nvarchar(60)nvarchar(60) Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Descrizione del tipo di autenticazione.Description of the authentication type. Di seguito sono i valori possibili e le relative descrizioni.The following are the possible values and their descriptions.

NONE: Nessuna autenticazioneNONE : No authentication
ISTANZA: Autenticazione istanzaINSTANCE : Instance authentication
DATABASE: L'autenticazione del DatabaseDATABASE : Database authentication
WINDOWS: L'autenticazione di WindowsWINDOWS : Windows Authentication
default_language_namedefault_language_name sysnamesysname Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Indica la lingua predefinita per questa entità.Signifies the default language for this principal.
default_language_lciddefault_language_lcid intint Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Indica l'identificatore LCID predefinito per questa entità.Signifies the default LCID for this principal.
allow_encrypted_value_modificationsallow_encrypted_value_modifications bitbit Si applica a: da SQL Server 2016 (13.x)SQL Server 2016 (13.x) a SQL Server 2017SQL Server 2017, Database SQLSQL Database.Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, Database SQLSQL Database.

Elimina i controlli sui metadati di crittografia nel server nelle operazioni di copia bulk.Suppresses cryptographic metadata checks on the server in bulk copy operations. Ciò consente all'utente di copia bulk di dati con Always Encrypted, tra le tabelle o database, senza la decrittografia dei dati.This enables the user to bulk copy data encrypted using Always Encrypted, between tables or databases, without decrypting the data. Il valore predefinito è OFF.The default is OFF.

NoteRemarks

Il PasswordLastSetTime proprietà sono disponibili in tutte le configurazioni supportate di SQL Server, ma le altre proprietà è disponibile solo quando viene eseguito SQL Server in Windows Server 2003 o versione successiva ed entrambe le opzioni CHECK_POLICY e CHECK_ SCADENZA sono abilitati.The PasswordLastSetTime properties are available on all supported configurations of SQL Server, but the other properties are only available when SQL Server is running on Windows Server 2003 or later and both CHECK_POLICY and CHECK_EXPIRATION are enabled. Visualizzare criteri Password per altre informazioni.See Password Policy for more information.

PermissionsPermissions

Qualsiasi utente può visualizzare il proprio nome utente, gli utenti di sistema e i ruoli predefiniti del database.Any user can see their own user name, the system users, and the fixed database roles. Per visualizzare altri utenti, è richiesta l'autorizzazione ALTER ANY USER o un'autorizzazione dell'utente.To see other users, requires ALTER ANY USER, or a permission on the user. Per visualizzare i ruoli definiti dall'utente, è richiesta l'autorizzazione ALTER ANY ROLE o l'appartenenza al ruolo.To see user-defined roles, requires ALTER ANY ROLE, or membership in the role.

EsempiExamples

A: elenco di tutte le autorizzazioni delle entità di databaseA: Listing all the permissions of database principals

Nella query seguente vengono elencate le autorizzazioni concesse o negate in modo esplicito alle entità di database.The following query lists the permissions explicitly granted or denied to database principals.

Importante

Le autorizzazioni dei ruoli predefiniti del database non sono incluse in sys.database_permissions.The permissions of fixed database roles do not appear in sys.database_permissions. Pertanto, le entità di database potrebbero contenere ulteriori autorizzazioni non presenti in questo elenco.Therefore, database principals may have additional permissions not listed here.

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: elenco di autorizzazioni per gli oggetti dello schema all'interno di un databaseB: Listing permissions on schema objects within a database

Nella query seguente viene creato un join di sys.database_principals e sys.database_permissions con sys.objects e sys.schemas per elencare le autorizzazioni concesse o negate agli oggetti di uno schema specifico.The following query joins sys.database_principals and sys.database_permissions to sys.objects and sys.schemas to list permissions granted or denied to specific schema objects.

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;  

Esempi: Azure SQL Data WarehouseAzure SQL Data Warehouse e Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

C: elenco di tutte le autorizzazioni delle entità di databaseC: Listing all the permissions of database principals

Nella query seguente vengono elencate le autorizzazioni concesse o negate in modo esplicito alle entità di database.The following query lists the permissions explicitly granted or denied to database principals.

Importante

Le autorizzazioni dei ruoli predefiniti del database non sono incluse sys.database_permissions.The permissions of fixed database roles do not appear in sys.database_permissions. Pertanto, le entità di database potrebbero contenere ulteriori autorizzazioni non presenti in questo elenco.Therefore, database principals may have additional permissions not listed here.

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;  

Unità d: elenco delle autorizzazioni per gli oggetti dello schema all'interno di un databaseD: Listing permissions on schema objects within a database

La query seguente join sys.database_principals e sys.database_permissions al sys.objects e sys.schemas per elencare le autorizzazioni concesse o negate agli oggetti dello schema specifico.The following query joins sys.database_principals and sys.database_permissions to sys.objects and sys.schemas to list permissions granted or denied to specific schema objects.

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;  

Vedere ancheSee Also

Entità (motore di database) Principals (Database Engine)
sys.server_principals (Transact-SQL) sys.server_principals (Transact-SQL)
Viste del catalogo relative alla sicurezza (Transact-SQL) Security Catalog Views (Transact-SQL)
Utenti di Database indipendente: rendere portabile un Database Contained Database Users - Making Your Database Portable
Connessione al database SQL con l'autenticazione di Azure Active DirectoryConnecting to SQL Database By Using Azure Active Directory Authentication