Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di analisi (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
Database SQL in Microsoft Fabric
Restituisce una riga per ogni autorizzazione o per ogni autorizzazione per le eccezioni di colonna nel database. Per le colonne, esiste una riga per ogni autorizzazione che è diversa dall'autorizzazione corrispondente a livello di oggetto. Se l'autorizzazione per la colonna è uguale all'autorizzazione dell'oggetto corrispondente, non è presente alcuna riga e l'autorizzazione applicata è quella dell'oggetto .
Important
Le autorizzazioni a livello di colonna hanno la precedenza sulle autorizzazioni a livello di oggetto per la stessa entità.
| Nome della colonna | Tipo di dati | Description |
|---|---|---|
| class | tinyint | Identifica la classe per la quale esiste l'autorizzazione. Per altre informazioni, vedere sys.securable_classes (Transact-SQL). 0 = Database 1 = Oggetto o colonna 3 = Schema 4 = Entità di database 5 = Assembly - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 6 = Tipo 10 = Raccolta di XML Schema - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 15 = Tipo di messaggio - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 16 = Contratto di servizio - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 17 = Servizio - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 18 = Associazione al servizio remoto - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 19 = Route - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 23 =Catalogo full-text - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 24 = Chiave simmetrica - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 25 = Certificato - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 26 = Chiave asimmetrica - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 29 = Elenco di parole non significative full-text - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 31 = Elenco proprietà di ricerca - Si applica a: SQL Server 2008 (10.0.x) e versioni successive. 32 = Credenziali con ambito database - Si applica a: SQL Server 2016 (13.x) e versioni successive. 34 = Linguaggio esterno - Si applica a: SQL Server 2019 (15.x) e versioni successive. |
| class_desc | nvarchar(60) | Descrizione della classe per cui esiste l'autorizzazione. DATABASE OBJECT_OR_COLUMN SCHEMA DATABASE_PRINCIPAL ASSEMBLY TYPE XML_SCHEMA_COLLECTION MESSAGE_TYPE SERVICE_CONTRACT SERVICE REMOTE_SERVICE_BINDING ROUTE FULLTEXT_CATALOG SYMMETRIC_KEYS CERTIFICATE ASYMMETRIC_KEY Lista di Parole Escluse per il Testo Completo ELENCO RICERCA IMMOBILI CREDENZIALE CON AMBITO SPECIFICO DEL DATABASE LINGUAGGIO ESTERNO |
| major_id | int | ID dell'elemento per cui esiste l'autorizzazione, interpretato in base alla classe di appartenenza. In genere, il major_id tipo di ID che si applica a ciò che la classe rappresenta. 0 = Database stesso >0 = ID oggetto per gli oggetti utente <0 = ID oggetto per gli oggetti di sistema |
| minor_id | int | ID secondario dell'elemento per cui esiste l'autorizzazione, interpretato in base alla classe di appartenenza. Spesso, è minor_id zero, perché non è disponibile alcuna sottocategoria per la classe dell'oggetto . In caso contrario, è l'ID colonna di una tabella. |
| grantee_principal_id | int | ID dell'entità di database alla quale vengono concesse le autorizzazioni. |
| grantor_principal_id | int | ID dell'entità di database dell'utente che concede queste autorizzazioni. |
| type | char(4) | Tipo di autorizzazione per il database Per un elenco dei tipi di autorizzazioni, vedere la tabella seguente. |
| permission_name | nvarchar(128) | Nome del permesso. |
| state | char(1) | Dichiarazione del permesso: D = Nega R = Revoca G = Grant W = Concessione con opzione di concessione |
| state_desc | nvarchar(60) | Descrizione dello stato dell'autorizzazione: DENY REVOKE GRANT GRANT_WITH_GRANT_OPTION |
Autorizzazioni database
Sono possibili i tipi di autorizzazioni seguenti.
| Tipo di autorizzazione | Nome autorizzazione | Entità a protezione diretta a cui si applica |
|---|---|---|
| AADS | ALTERARE QUALSIASI SESSIONE DI EVENTO DEL DATABASE | DATABASE |
| AAMK | ALTERARE QUALSIASI MASCHERA | DATABASE |
| AEDS | ALTERA QUALSIASI FONTE DATI ESTERNA | DATABASE |
| AEFF | MODIFICARE QUALSIASI FORMATO DI FILE ESTERNO | DATABASE |
| AL | ALTER | RUOLO APPLICAZIONE, ASSEMBLY, CHIAVE ASIMMETRICA, CERTIFICATO, CONTRATTO, DATABASE, CATALOGO FULLTEXT, TIPO DI MESSAGGIO, OGGETTO, ASSOCIAZIONE DI SERVIZI REMOTI, RUOLO, ROUTE, SCHEMA, SERVIZIO, CHIAVE SIMMETRICA, UTENTE, RACCOLTA XML SCHEMA |
| ALAK | ALTERA QUALSIASI CHIAVE ASIMMETRICA | DATABASE |
| ALAR | MODIFICA QUALSIASI RUOLO DELL'APPLICAZIONE | DATABASE |
| ALAS | ALTERA QUALSIASI ASSEMBLY | DATABASE |
| ALCF | MODIFICA QUALSIASI CERTIFICATO | DATABASE |
| ALDS | MODIFICARE QUALSIASI SPAZIO DATI | DATABASE |
| ALED | ALTER QUALSIASI NOTIFICA DI EVENTO DEL DATABASE | DATABASE |
| ALFT | ALTER QUALSIASI CATALOGO FULLTEXT | DATABASE |
| ALMT | MODIFICARE QUALSIASI TIPO DI MESSAGGIO | DATABASE |
| ALRL | MODIFICA QUALSIASI RUOLO | DATABASE |
| ALRT | ALTERA QUALSIASI ROTTA | DATABASE |
| ALSB | MODIFICA QUALSIASI ASSOCIAZIONE DI SERVIZIO REMOTO | DATABASE |
| ALSC | MODIFICA QUALSIASI CONTRATTO | DATABASE |
| ALSK | ALTERARE QUALSIASI CHIAVE SIMMETRICA | DATABASE |
| ALSM | ALTERARE QUALSIASI SCHEMA | DATABASE |
| ALSV | MODIFICARE QUALSIASI SERVIZIO | DATABASE |
| ALTG | ALTERA QUALSIASI TRIGGER DDL DEL DATABASE | DATABASE |
| ALUS | ALTERARE QUALSIASI UTENTE | DATABASE |
| AUTH | AUTHENTICATE | DATABASE |
| BADB | BACKUP DATABASE (Esegui il backup del database) | DATABASE |
| BALO | REGISTRO DI BACKUP | DATABASE |
| CL | CONTROL | RUOLO APPLICAZIONE, ASSEMBLY, CHIAVE ASIMMETRICA, CERTIFICATO, CONTRATTO, DATABASE, CATALOGO FULLTEXT, TIPO DI MESSAGGIO, OGGETTO, ASSOCIAZIONE DI SERVIZI REMOTI, RUOLO, ROUTE, SCHEMA, SERVIZIO, CHIAVE SIMMETRICA, TIPO, UTENTE, RACCOLTA XML SCHEMA |
| CO | CONNECT | DATABASE |
| CORP | REPLICAZIONE DI CONNESSIONE | DATABASE |
| CP | CHECKPOINT | DATABASE |
| CRAG | CREARE AGGREGATO | DATABASE |
| CRAK | CREA CHIAVE ASIMMETRICA | DATABASE |
| CRAS | CREA ASSEMBLY | DATABASE |
| CRCF | CREA CERTIFICATO | DATABASE |
| CRDB | CREA DATABASE | DATABASE |
| CRDF | CREA PREDEFINITO | DATABASE |
| CRED | NOTIFICA EVENTO DDL DEL DATABASE | DATABASE |
| CRFN | CREA FUNZIONE | DATABASE |
| CRFT | CREA CATALOGO FULLTEXT | DATABASE |
| CRMT | CREA TIPO DI MESSAGGIO | DATABASE |
| CRPR | CREA PROCEDURA | DATABASE |
| CRQU | CREATE QUEUE | DATABASE |
| CRRL | CREARE RUOLO | DATABASE |
| CRRT | Crea percorso | DATABASE |
| CRRU | CREA REGOLA | DATABASE |
| CRSB | CREA ASSOCIAZIONE DI SERVIZIO REMOTO | DATABASE |
| CRSC | CREA CONTRATTO | DATABASE |
| CRSK | CREARE CHIAVE SIMMETRICA | DATABASE |
| CRSM | CREATE SCHEMA | DATABASE |
| CRSN | CREA SINONIMO | DATABASE |
| CRSO |
Si applica a: SQL Server 2012 (11.x) e versioni successive. CREA SEQUENZA |
DATABASE |
| CRSV | CREA SERVIZIO | DATABASE |
| CRTB | CREATE TABLE | DATABASE |
| CRTY | CREA TIPO (CREATE TYPE) | DATABASE |
| CRVW | CREA VISTA | DATABASE |
| CRXS |
Si applica a: SQL Server 2008 (10.0.x) e versioni successive. CREA XML SCHEMA COLLECTION |
DATABASE |
| DABO | AMMINISTRA LE OPERAZIONI DI MASSA DEL DATABASE | DATABASE |
| DL | DELETE | DATABASE, OGGETTO, SCHEMA |
| EAES | Eseguire qualsiasi script esterno | DATABASE |
| EX | EXECUTE | ASSEMBLY, DATABASE, OGGETTO, SCHEMA, TIPO, COLLEZIONE SCHEMA XML |
| IM | IMPERSONATE | USER |
| IN | INSERT | DATABASE, OGGETTO, SCHEMA |
| RC | RECEIVE | OBJECT |
| RF | REFERENCES | ASSEMBLY, CHIAVE ASIMMETRICA, CERTIFICATO, CONTRATTO, DATABASE, CATALOGO FULLTEXT, TIPO DI MESSAGGIO, OGGETTO, SCHEMA, CHIAVE SIMMETRICA, TIPO, COLLEZIONE DI SCHEMA XML |
| SL | SELECT | DATABASE, OGGETTO, SCHEMA |
| SN | SEND | SERVICE |
| SPLN | SHOWPLAN | DATABASE |
| SUQN | SOTTOSCRIVERE LE NOTIFICHE DELLE QUERY | DATABASE |
| TO | PRENDITI LA PROPRIETÀ | ASSEMBLY, CHIAVE ASIMMETRICA, CERTIFICATO, CONTRATTO, DATABASE, CATALOGO FULLTEXT, TIPO DI MESSAGGIO, OGGETTO, BINDING REMOTO DI SERVIZIO, RUOLO, ROUTE, SCHEMA, SERVIZIO, CHIAVE SIMMETRICA, TIPO, COLLEZIONE DI SCHEMA XML |
| UP | UPDATE | DATABASE, OGGETTO, SCHEMA |
| VW | DEFINIZIONE VISUALIZZA | RUOLO APPLICAZIONE, ASSEMBLY, CHIAVE ASIMMETRICA, CERTIFICATO, CONTRATTO, DATABASE, CATALOGO FULLTEXT, TIPO DI MESSAGGIO, OGGETTO, ASSOCIAZIONE DI SERVIZI REMOTI, RUOLO, ROUTE, SCHEMA, SERVIZIO, CHIAVE SIMMETRICA, TIPO, UTENTE, RACCOLTA XML SCHEMA |
| VWCK | VISUALIZZARE QUALSIASI DEFINIZIONE DELLA CHIAVE DI CRITTOGRAFIA DELLA COLONNA | DATABASE |
| VWCM | VISUALIZZARE LA DEFINIZIONE DELLA CHIAVE MASTER DI QUALSIASI COLONNA | DATABASE |
| VWCT | VISUALIZZARE IL RILEVAMENTO MODIFICHE | TABELLA, SCHEMA |
| VWDS | VISUALIZZARE LO STATO DEL DATABASE | DATABASE |
REVOKE e autorizzazioni per le eccezioni di colonna
Nella maggior parte dei casi, il comando REVOKE rimuoverà la voce GRANT o DENY da sys.database_permissions.
Tuttavia, è possibile concedere o negare le autorizzazioni per un oggetto e quindi REVOCARE tale autorizzazione per una colonna. Questa autorizzazione di eccezione di colonna verrà visualizzata come REVOKE in sys.database_permissions. Si consideri l'esempio seguente:
GRANT SELECT ON Person.Person TO [Sales];
REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];
Queste autorizzazioni verranno visualizzate in sys.database_permissions come una GRANT (nella tabella) e una REVOKE (nella colonna).
Important
REVOKE è diverso da DENY, perché l'entità di Sales può comunque avere accesso alla colonna tramite altre autorizzazioni. Se le autorizzazioni sono stati negate anziché revocarle, Sales non sarebbe in grado di visualizzare il contenuto della colonna perché DENY sostituisce sempre GRANT.
Permissions
Qualsiasi utente può visualizzare le proprie autorizzazioni. Per visualizzare le autorizzazioni di altri utenti, è richiesta VIEW DEFINITION, ALTER ANY USER o qualsiasi autorizzazione per un utente. Per visualizzare i ruoli definiti dall'utente, è richiesta l'autorizzazione ALTER ANY ROLE o l'appartenenza al ruolo (ad esempio pubblico).
La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.
Examples
A. Elencare tutte le autorizzazioni delle entità di database
Nella query seguente vengono elencate le autorizzazioni concesse o negate in modo esplicito alle entità di database.
Important
Le autorizzazioni dei ruoli predefiniti del database non vengono visualizzate in sys.database_permissions. Pertanto, le entità di database potrebbero contenere ulteriori autorizzazioni non presenti in questo elenco.
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
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id;
B. Elencare le autorizzazioni per gli oggetti schema all'interno di un database
La query seguente aggiunge sys.database_principals e a sys.objectssys.database_permissions
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
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id;
C. Elencare le autorizzazioni per un oggetto specifico
È possibile usare l'esempio precedente per eseguire query sulle autorizzazioni specifiche di un singolo oggetto di database.
Si considerino ad esempio le autorizzazioni granulari seguenti concesse a un utente test del database nel databaseAdventureWorksDW2025di esempio :
GRANT SELECT ON dbo.vAssocSeqOrders TO [test];
Trovare le autorizzazioni granulari assegnate a dbo.vAssocSeqOrders:
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
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id
WHERE o.name = 'vAssocSeqOrders'
AND s.name = 'dbo';
Restituisce l'output:
principal_id name type_desc authentication_type_desc state_desc permission_name ObjectName
5 test SQL_USER INSTANCE GRANT SELECT dbo.vAssocSeqOrders
Vedere anche
- Securables
- Gerarchia delle autorizzazioni (Motore di database)
- Viste del catalogo della sicurezza (Transact-SQL)
- Viste del catalogo (Transact-SQL)