REVOKE (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di analisi (PDW)Endpoint di analisi SQL in Microsoft FabricMagazzino in Microsoft FabricDatabase SQL in Microsoft Fabric

Rimuove un'autorizzazione precedentemente assegnata o negata.

Convenzioni relative alla sintassi Transact-SQL

Syntax

Sintassi per SQL Server, database SQL di Azure e database SQL dell'infrastruttura

-- Simplified syntax for REVOKE  
REVOKE [ GRANT OPTION FOR ]  
      {   
        [ ALL [ PRIVILEGES ] ]  
        |  
                permission [ ( column [ ,...n ] ) ] [ ,...n ]  
      }  
      [ ON [ class :: ] securable ]   
      { TO | FROM } principal [ ,...n ]   
      [ CASCADE] [ AS principal ]  

Sintassi per Azure Synapse Analytics, Parallel Data Warehouse e Microsoft Fabric Warehouse

REVOKE
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    [ FROM | TO ] principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class_type> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Arguments

GRANT OPZIONE PER
Indica che verrà revocata la capacità di concedere l'autorizzazione specificata. Argomento obbligatorio in caso di utilizzo dell'argomento CASCADE.

Important

Se il mandante ha il permesso specificato senza questa GRANT opzione, il permesso stesso verrà revocato.

ALL
Si applica a: SQL Server 2008 (10.0.x) e versioni successive

Questa opzione non revoca tutte le possibili autorizzazioni. La revoca di autorizzazioni tramite l'argomento ALL equivale alla revoca delle autorizzazioni seguenti.

  • Se il securable è un database, ALL significa BACKUP, LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE RULECREATE PROCEDURE, , CREATE TABLE, , e CREATE VIEW. BACKUPDATABASE

  • Se l'entità a protezione diretta è una funzione scalare, ALL corrisponde a EXECUTE e REFERENCES.

  • Se il securable è una funzione a valori di tabella, ALL significa DELETE, INSERT, REFERENCES, SELECT e UPDATE.

  • Se l'entità a protezione diretta è una stored procedure, ALL corrisponde a EXECUTE.

  • Se il securable è una tabella, ALL significa DELETE, INSERT, REFERENCES, SELECT e UPDATE.

  • Se il securable è una vista, ALL significa DELETE, INSERT, RIFERIMENTI, SELECT e UPDATE.

Note

La REVOKE sintassi ALL è deprecata. Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Revocare invece autorizzazioni specifiche.

PRIVILEGES
Opzione inclusa per compatibilità con lo standard ISO. Non modifica il funzionamento di ALL.

permission
Nome di un'autorizzazione. I mapping validi delle autorizzazioni alle entità a protezione diretta vengono descritti negli argomenti riportati nella sezione Sintassi specifica delle entità a protezione diretta di seguito in questo argomento.

column
Specifica il nome di una colonna in una tabella alla quale vengono revocate le autorizzazioni. Le parentesi sono obbligatorie.

class
Specifica la classe dell'entità a protezione diretta alla quale viene revocata l'autorizzazione. Il qualificatore di ambito :: è obbligatorio.

securable
Specifica l'entità a protezione diretta a cui viene revocata l'autorizzazione.

A | DA preside
Nome di un'entità. Le entità a cui è possibile revocare le autorizzazioni per un'entità a protezione diretta variano in base all'entità a protezione diretta specifica. Per altre informazioni sulle combinazioni valide, vedere gli argomenti elencati nella sezione Sintassi specifica delle entità a protezione diretta di seguito in questo argomento.

CASCADE
Indica che l'autorizzazione revocata viene revocata anche ad altre entità alle quali è stata concessa da questa entità. Quando usi l'argomento CASCADE, devi includere anche l'argomento GRANT OPTION FOR.

Caution

Una revoca a cascata di un permesso concesso CON GRANT OPZIONE revocerà entrambi GRANT e DENY di quel permesso.

AS preside
Usare la clausola AS principal per indicare che si sta revocando un'autorizzazione che è stata concessa da un'altra entità. Si supponga ad esempio che l'utente Mary sia principal_id 12 e l'utente Raul sia principal_id 15. Sia Mary sia Raul concedono all'utente Steven la stessa autorizzazione. La tabella sys.database_permissions indica l'autorizzazione due volte con valori grantor_principal_id diversi. Mary può revocare l'autorizzazione usando la clausola AS RAUL per rimuovere la concessione dell'autorizzazione di Raul.

L'uso di AS in questa istruzione non implica la possibilità di rappresentare un altro utente.

Remarks

La sintassi completa dell'istruzione REVOKE è complessa. Il diagramma della sintassi precedente è stato semplificato per evidenziarne la struttura. La sintassi completa per la revoca di autorizzazioni per entità a protezione diretta specifiche è descritta negli argomenti della sezione Sintassi specifica delle entità a protezione diretta di seguito in questo argomento.

L'istruzione REVOKE può essere usata per rimuovere le autorizzazioni concesse e l'istruzione può essere usata per impedire a un'entità DENY di ottenere un'autorizzazione specifica tramite un oggetto GRANT.

La concessione di un'autorizzazione rimuove DENY o REVOKE di tale autorizzazione per l'entità a protezione diretta specificata. Se la stessa autorizzazione viene negata in un ambito superiore che contiene l'entità a protezione diretta, ha la DENY precedenza. Tuttavia, la revoca dell'autorizzazione concessa a un ambito superiore non ha la precedenza.

Caution

Un livello DENY di tabella non ha la precedenza su un livello GRANTdi colonna. Questa incoerenza nella gerarchia delle autorizzazioni è stata mantenuta per compatibilità con le versioni precedenti. Verrà rimosso in una versione futura.

La stored procedure di sistema sp_helprotect restituisce le autorizzazioni per un'entità a protezione diretta a livello di database.

L'estratto REVOKE non verrà menzionato se CASCADE non viene specificato quando stai revocando un permesso da un committente che ha ottenuto quel permesso con GRANT OPTION specificato.

Permissions

Le entità con l'autorizzazione CONTROL per un'entità a protezione diretta possono revocare l'autorizzazione per quella entità. I proprietari degli oggetti possono revocare autorizzazioni per gli oggetti di cui sono proprietari.

Gli utenti che dispongono dell'autorizzazione CONTROL SERVER, ad esempio i membri del ruolo predefinito del server sysadmin, possono revocare qualsiasi autorizzazione per qualsiasi entità a protezione diretta nel server. Gli utenti che dispongono dell'autorizzazione CONTROL in un database, ad esempio i membri del ruolo predefinito del database db_owner, possono revocare qualsiasi autorizzazione per qualsiasi entità a protezione diretta nel database. Gli utenti che dispongono dell'autorizzazione CONTROL in uno schema possono revocare qualsiasi autorizzazione per qualsiasi oggetto all'interno dello schema.

Sintassi specifica per il sicurezza

Nella tabella seguente vengono elencate le entità a protezione diretta e gli argomenti in cui viene descritta la relativa sintassi specifica.

Securable Topic
Ruolo di applicazione REVOKE Permessi principali del database (Transact-SQL)
Assembly REVOKE Permessi di Assembly (Transact-SQL)
Chiave asimmetrica REVOKE Permessi di chiavi asimmetrici (Transact-SQL)
Gruppo di disponibilità REVOKE Permessi di Gruppo di Disponibilità (Transact-SQL)
Certificate REVOKE Permessi di Certificato (Transact-SQL)
Contract REVOKE Autorizzazioni di Service Broker (Transact-SQL)
Database REVOKE Permessi del database (Transact-SQL)
Endpoint REVOKE Autorizzazioni endpoint (Transact-SQL)
Credenziali con ambito database REVOKE Credenziale con ambito di database (Transact-SQL)
Catalogo integrale REVOKE Full-Text Permessi (Transact-SQL)
Full-Text Stoplist REVOKE Full-Text Permessi (Transact-SQL)
Function REVOKE Autorizzazioni per gli oggetti (Transact-SQL)
Login REVOKE Autorizzazioni dell'entità server (Transact-SQL)
Tipo di messaggio REVOKE Autorizzazioni di Service Broker (Transact-SQL)
Object REVOKE Autorizzazioni per gli oggetti (Transact-SQL)
Queue REVOKE Autorizzazioni per gli oggetti (Transact-SQL)
Associazione al servizio remoto REVOKE Autorizzazioni di Service Broker (Transact-SQL)
Role REVOKE Permessi principali del database (Transact-SQL)
Route REVOKE Autorizzazioni di Service Broker (Transact-SQL)
Schema REVOKE Permessi di schema (Transact-SQL)
Elenco delle proprietà di ricerca REVOKE Permessi di ricerca nella lista delle proprietà (Transact-SQL)
Server REVOKE Autorizzazioni server (Transact-SQL)
Service REVOKE Autorizzazioni di Service Broker (Transact-SQL)
Procedura memorizzata REVOKE Autorizzazioni per gli oggetti (Transact-SQL)
Chiave simmetrica REVOKE Permessi di chiavi simmetrici (Transact-SQL)
Synonym REVOKE Autorizzazioni per gli oggetti (Transact-SQL)
Oggetti di sistema REVOKE Autorizzazioni per gli oggetti di sistema (Transact-SQL)
Table REVOKE Autorizzazioni per gli oggetti (Transact-SQL)
Type REVOKE Permessi di Tipo (Transact-SQL)
User REVOKE Permessi principali del database (Transact-SQL)
View REVOKE Autorizzazioni per gli oggetti (Transact-SQL)
Raccolta di XML Schema REVOKE Permessi di raccolta schema XML (Transact-SQL)

Examples

A. Concedere e revocare

Si applica a: SQL Server, database SQL

Nell'esempio seguente viene creato uno schema, un utente del database indipendente e un nuovo ruolo in un database utente. Aggiunge l'utente al ruolo, concede l'autorizzazione SELECT allo schema al ruolo e quindi rimuove l'autorizzazione (REVOKE) per il ruolo.

CREATE SCHEMA Sales;  
GO
CREATE USER Joe without login;
GO
CREATE ROLE Vendors;
GO
ALTER ROLE Vendors ADD MEMBER Joe; 
GO
GRANT SELECT ON SCHEMA :: Sales TO Vendors;
GO
REVOKE SELECT ON SCHEMA :: Sales TO Vendors;
GO
 

Vedere anche

Gerarchia delle autorizzazioni (Motore di database)
DENY (Transact-SQL)
GRANT (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)