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 FULLTEXT STOPLIST SEARCH PROPERTY LIST DATABASE SCOPED CREDENTIAL EXTERNAL LANGUAGE |
| 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 | ALTERA QUALSIASI DATABASEEVENT SESSION | DATABASE |
| AAMK | ALTERARE QUALSIASI MASCHERA | DATABASE |
| AEDS | MODIFICA QUALSIASI EXTERNAL DATA SOURCE | DATABASE |
| AEFF | MODIFICA QUALSIASI EXTERNAL FILE FORMAT | DATABASE |
| AL | ALTER | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, CONTRACTCERTIFICATE, , DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, , OGGETTO, REMOTE SERVICE BINDING, ROLE, ROUTESCHEMASERVICESYMMETRIC KEYUSERXML SCHEMA COLLECTION |
| ALAK | MODIFICA QUALSIASI ASYMMETRIC KEY | DATABASE |
| ALAR | MODIFICA QUALSIASI APPLICATION ROLE | DATABASE |
| ALAS | MODIFICA QUALSIASI ASSEMBLY | DATABASE |
| ALCF | MODIFICA QUALSIASI CERTIFICATE | DATABASE |
| ALDS | MODIFICARE QUALSIASI SPAZIO DATI | DATABASE |
| ALED | ALTERA QUALSIASI DATABASEEVENT NOTIFICATION | DATABASE |
| ALFT | MODIFICA QUALSIASI FULLTEXT CATALOG | DATABASE |
| ALMT | MODIFICA QUALSIASI MESSAGE TYPE | DATABASE |
| ALRL | MODIFICA QUALSIASI ROLE | DATABASE |
| ALRT | MODIFICA QUALSIASI ROUTE | DATABASE |
| ALSB | MODIFICA QUALSIASI REMOTE SERVICE BINDING | DATABASE |
| ALSC | MODIFICA QUALSIASI CONTRACT | DATABASE |
| ALSK | MODIFICA QUALSIASI SYMMETRIC KEY | DATABASE |
| ALSM | MODIFICA QUALSIASI SCHEMA | DATABASE |
| ALSV | MODIFICA QUALSIASI SERVICE | DATABASE |
| ALTG | ALTERA QUALSIASI DATABASE DDL TRIGGER | DATABASE |
| ALUS | MODIFICA QUALSIASI USER | DATABASE |
| AUTH | AUTHENTICATE | DATABASE |
| BADB | BACKUP DATABASE | DATABASE |
| BALO | BACKUP LOG | DATABASE |
| CL | CONTROL | APPLICATION ROLE, ASSEMBLY, CERTIFICATEASYMMETRIC KEY, CONTRACT, , DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OGGETTO, REMOTE SERVICE BINDING, , SERVICEUSERROUTESCHEMASYMMETRIC KEYTYPEROLEXML SCHEMA COLLECTION |
| CO | CONNECT | DATABASE |
| CORP | REPLICAZIONE DI CONNESSIONE | DATABASE |
| CP | CHECKPOINT | DATABASE |
| CRAG | CREATE AGGREGATE | DATABASE |
| CRAK | CREATE ASYMMETRIC KEY | DATABASE |
| CRAS | CREATE ASSEMBLY | DATABASE |
| CRCF | CREATE CERTIFICATE | DATABASE |
| CRDB | CREATE DATABASE | DATABASE |
| CRDF | CREATE DEFAULT | DATABASE |
| CRED | CREATE DATABASE DDL EVENT NOTIFICATION | DATABASE |
| CRFN | CREATE FUNCTION | DATABASE |
| CRFT | CREATE FULLTEXT CATALOG | DATABASE |
| CRMT | CREATE MESSAGE TYPE | DATABASE |
| CRPR | CREATE PROCEDURE | DATABASE |
| CRQU | CREATE QUEUE | DATABASE |
| CRRL | CREATE ROLE | DATABASE |
| CRRT | CREATE ROUTE | DATABASE |
| CRRU | CREATE RULE | DATABASE |
| CRSB | CREATE REMOTE SERVICE BINDING | DATABASE |
| CRSC | CREATE CONTRACT | DATABASE |
| CRSK | CREATE SYMMETRIC KEY | DATABASE |
| CRSM | CREATE SCHEMA | DATABASE |
| CRSN | CREATE SYNONYM | DATABASE |
| CRSO |
Si applica a: SQL Server 2012 (11.x) e versioni successive. CREATE SEQUENCE |
DATABASE |
| CRSV | CREATE SERVICE | DATABASE |
| CRTB | CREATE TABLE | DATABASE |
| CRTY | CREATE TYPE | DATABASE |
| CRVW | CREATE VIEW | DATABASE |
| CRXS |
Si applica a: SQL Server 2008 (10.0.x) e versioni successive. CREATE XML SCHEMA COLLECTION |
DATABASE |
| DABO | AMMINISTRARE DATABASE OPERAZIONI DI BLOCCO | DATABASE |
| DL | DELETE | DATABASE, OBIETTIVO, SCHEMA |
| EAES | Eseguire qualsiasi script esterno | DATABASE |
| EX | EXECUTE | ASSEMBLY, DATABASE, OGGETTO, SCHEMA, TYPE, XML SCHEMA COLLECTION |
| IM | IMPERSONATE | USER |
| IN | INSERT | DATABASE, OBIETTIVO, SCHEMA |
| RC | RECEIVE | OBJECT |
| RF | REFERENCES | ASSEMBLY, , , , , , , OGGETTO, SCHEMA, SYMMETRIC KEY, TYPE, MESSAGE TYPEDATABASEFULLTEXT CATALOGCONTRACTCERTIFICATEASYMMETRIC KEYXML SCHEMA COLLECTION |
| SL | SELECT | DATABASE, OBIETTIVO, SCHEMA |
| SN | SEND | SERVICE |
| SPLN | SHOWPLAN | DATABASE |
| SUQN | SOTTOSCRIVERE LE NOTIFICHE DELLE QUERY | DATABASE |
| TO | PRENDITI LA PROPRIETÀ | ASSEMBLY, , , , , , , , OGGETTO, REMOTE SERVICE BINDING, ROLESERVICESCHEMASYMMETRIC KEYTYPEROUTEMESSAGE TYPEFULLTEXT CATALOGDATABASECONTRACTCERTIFICATEASYMMETRIC KEYXML SCHEMA COLLECTION |
| UP | UPDATE | DATABASE, OBIETTIVO, SCHEMA |
| VW | VIEW DEFINIZIONE | APPLICATION ROLE, ASSEMBLY, CERTIFICATEASYMMETRIC KEY, CONTRACT, , DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OGGETTO, REMOTE SERVICE BINDING, , SERVICEUSERROUTESCHEMASYMMETRIC KEYTYPEROLEXML SCHEMA COLLECTION |
| VWCK | VIEW QUALSIASI COLUMN ENCRYPTION KEY DEFINIZIONE | DATABASE |
| VWCM | VIEW QUALSIASI COLUMN MASTER KEY DEFINIZIONE | DATABASE |
| VWCT | VIEW TRACCIAMENTO DELLE MODIFICHE | TABLE, SCHEMA |
| VWDS | VIEW DATABASE STATO | DATABASE |
REVOKE e permessi di eccezione a colonna
Nella maggior parte dei casi, il REVOKE comando rimuoverà l'inserimento GRANT o DENY da sys.database_permissions.
Tuttavia, è possibile GRANT o DENY permessi su un oggetto e poi REVOKE quel permesso su una colonna. Questo permesso di eccezione a colonna apparirà 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];
Questi permessi appariranno in sys.database_permissions come uno GRANT (sulla tabella) e uno REVOKE (sulla colonna).
Important
REVOKE è diverso da DENY, poiché il Sales principale può comunque avere accesso alla colonna tramite altri permessi. Se avessimo negato i permessi invece di revocarli, Sales non potremmo visualizzare il contenuto della colonna perché DENY sostituisce GRANTsempre .
Permissions
Qualsiasi utente può visualizzare le proprie autorizzazioni. Per vedere i permessi di altri utenti, è necessario VIEW DEFINIRE, MODIFICARE QUALSIASI USERo qualsiasi permesso su un utente. Per vedere ruoli definiti dall'utente, è necessario ALTERARE QUALSIASI ROLE, oppure l'appartenenza al ruolo (come 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
WHERE pe.class = 1;
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 pe.class = 1
AND 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)