Partager via


RÉVOQUER (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison d’analytique SQL dans Microsoft FabricEntrepôt dans Microsoft FabricBase de données SQL dans Microsoft Fabric

Supprime une autorisation accordée ou refusée antérieurement.

Conventions de la syntaxe Transact-SQL

Syntax

Syntaxe pour SQL Server, Azure SQL Database et base de données SQL Fabric

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

Syntaxe pour Azure Synapse Analytics, Parallel Data Warehouse et l’entrepôt Microsoft Fabric

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

OPTION D’OCTROI POUR
Indique que la possibilité d'accorder l'autorisation spécifiée sera révoquée. C'est obligatoire si vous utilisez l'argument CASCADE.

Important

Si le principal possède l'autorisation spécifiée sans l'option GRANT, l'autorisation elle-même sera révoquée.

ALL
S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures

Cette option ne révoque pas toutes les autorisations possibles. La révocation complète, ALL, équivaut à révoquer les autorisations suivantes.

  • Si l'élément sécurisable est une base de données, ALL représente BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE et CREATE VIEW.

  • Si l'élément sécurisable est une fonction scalaire, ALL représente EXECUTE et REFERENCES.

  • Si l'élément sécurisable est une fonction table, ALL représente DELETE, INSERT, REFERENCES, SELECT et UPDATE.

  • Si l'élément sécurisable est une procédure stockée, ALL représente EXECUTE.

  • Si l'élément sécurisable est une table, ALL représente DELETE, INSERT, REFERENCES, SELECT et UPDATE.

  • Si l'élément sécurisable est une vue, ALL représente DELETE, INSERT, REFERENCES, SELECT et UPDATE.

Note

La syntaxe REVOKE ALL est déconseillée. Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Révoquez des autorisations spécifiques à la place.

PRIVILEGES
Inclus pour la conformité aux normes ISO. Ne change pas le comportement de l'option ALL.

permission
Nom d'une autorisation. Les mappages valides d’autorisations à des éléments sécurisables sont décrits dans les rubriques répertoriées dans la section Syntaxe spécifique aux éléments sécurisables, plus loin dans cette rubrique.

column
Spécifie le nom d'une colonne d'une table sur laquelle les autorisations sont révoquées. Les parenthèses sont obligatoires.

class
Spécifie la classe de l'élément sécurisable sur lequel l'autorisation est révoquée. Le qualificateur d’étendue :: est obligatoire.

securable
Spécifie l'élément sécurisable sur lequel l'autorisation est révoquée.

TO | PRINCIPAL FROM
Nom d’un principal. Les principaux d'où les autorisations portant sur un élément sécurisable peuvent être révoquées varient, selon cet élément sécurisable. Pour plus d’informations sur les combinaisons valides, consultez les rubriques répertoriées dans la section Syntaxe spécifique aux éléments sécurisables, plus loin dans cette rubrique.

CASCADE
Indique que l'autorisation qui est révoquée l'est aussi à partir d'autres principaux auxquels elle a été accordée par ce principal. Lorsque vous utilisez l'argument CASCADE, vous devez également inclure l'argument GRANT OPTION FOR.

Caution

Une révocation en cascade d'une autorisation accordée avec l'option WITH GRANT OPTION entraîne la révocation des deux options GRANT et DENY de cette autorisation.

Principal AS
Utilisez la clause AS principal pour indiquer que vous révoquez une autorisation accordée par une entité de sécurité autre que vous. Supposez par exemple que l’utilisateur Mary est le principal_id 12 et que l’utilisateur Raul est le principal_id 15. Mary et Raul accordent tous les deux à un utilisateur nommé Steven la même autorisation. La table sys.database_permissions indique deux fois les autorisations, mais elles auront chacune une valeur grantor_principal_id différente. Mary peut révoquer l’autorisation à l’aide de la clause AS RAUL pour supprimer l’octroi d’autorisation de Raul.

L’utilisation de AS dans cette instruction n’implique pas la possibilité d’emprunter l’identité d’un autre utilisateur.

Remarks

La syntaxe complète de l'instruction REVOKE est complexe. Le diagramme de syntaxe ci-dessus a été simplifié pour attirer l'attention sur sa structure. La syntaxe complète de la révocation d’autorisations sur des éléments sécurisables spécifiques est décrite dans les rubriques répertoriées dans la section Syntaxe spécifique aux éléments sécurisables, plus loin dans cette rubrique.

L'instruction REVOKE peut s'utiliser pour supprimer des autorisations accordées et l'instruction DENY pour empêcher un principal d'obtenir une autorisation particulière au moyen d'une instruction GRANT.

L'accord d'une autorisation supprime l'option DENY ou REVOKE de cette autorisation sur l'élément sécurisable spécifié. Si la même autorisation est refusée dans une étendue plus élevée qui contient l'élément sécurisable, l'option DENY est prioritaire. Toutefois, la révocation de l'autorisation accordée à une étendue supérieure ne devient pas prioritaire.

Caution

Une instruction DENY de niveau table n'a pas la priorité sur une instruction GRANT de niveau colonne. Cette incohérence dans la hiérarchie des autorisations a été conservée pour des raisons de compatibilité descendante. Elle sera supprimée dans une version ultérieure.

La procédure stockée système sp_helprotect répertorie les autorisations sur un élément sécurisable au niveau de la base de données.

L'instruction REVOKE échoue si l'argument CASCADE n'est pas spécifié lorsque vous révoquez une autorisation d'un principal auquel a été accordée cette autorisation avec GRANT OPTION spécifié.

Permissions

Les principaux avec l'autorisation CONTROL sur un élément sécurisable peuvent révoquer l'autorisation sur cet élément sécurisable. Les propriétaires d'objets peuvent révoquer des autorisations sur les objets qu'ils possèdent.

Les bénéficiaires de l'autorisation CONTROL SERVER, par exemple les membres du rôle serveur fixe sysadmin, peuvent révoquer n'importe quelle autorisation sur n'importe quel élément sécurisable du serveur. Les bénéficiaires de l'autorisation CONTROL sur une base de données, par exemple les membres du rôle de base de données fixe db_owner, peuvent révoquer n'importe quelle autorisation sur n'importe quel élément sécurisable de la base de données. Les bénéficiaires de l'autorisation CONTROL sur un schéma peuvent révoquer n'importe quelle autorisation sur n'importe quel objet du schéma.

Syntaxe spécifique aux objets sécurisés

Le tableau suivant répertorie les éléments sécurisables et les rubriques qui décrivent leur syntaxe.

Securable Topic
Rôle d'une application REVOKE – révocation d'autorisations de principal de base de données (Transact-SQL)
Assembly REVOKE - Autorisations sur un assembly (Transact-SQL)
Clé asymétrique REVOKE (Autorisations de clé asymétrique) (Transact-SQL)
Groupe de disponibilité REVOKE (Révocation d'autorisations de groupe de disponibilité) (Transact-SQL)
Certificate REVOKE (Autorisations de certificat) (Transact-SQL)
Contract Autorisations REVOKE dans Service Broker (Transact-SQL)
Database REVOKE – révocation d'autorisations de base de données (Transact-SQL)
Endpoint REVOKE – révocation d'autorisations de point de terminaison (Transact-SQL)
Informations d’identification délimitées à la base de données REVOKE - Révoquer des autorisations sur les informations d’identification délimitées à la base de données (Transact-SQL)
Catalogue intégral REVOKE - Autorisations relatives au texte intégral (Transact-SQL)
Full-Text Liste des arrêts REVOKE - Autorisations relatives au texte intégral (Transact-SQL)
Function REVOKE – révocation d'autorisations d'objet (Transact-SQL)
Login REVOKE – révocation d'autorisations de principal de serveur (Transact-SQL)
Message Type Autorisations REVOKE dans Service Broker (Transact-SQL)
Object REVOKE – révocation d'autorisations d'objet (Transact-SQL)
Queue REVOKE – révocation d'autorisations d'objet (Transact-SQL)
Liaisons de service distant Autorisations REVOKE dans Service Broker (Transact-SQL)
Role REVOKE – révocation d'autorisations de principal de base de données (Transact-SQL)
Route Autorisations REVOKE dans Service Broker (Transact-SQL)
Schema REVOKE - Révoquer les autorisations sur un schéma (Transact-SQL)
Liste de propriétés de recherche Autorisations de liste des propriétés de recherche REVOKE (Transact-SQL)
Server REVOKE - Révoquer des autorisations sur un serveur (Transact-SQL)
Service Autorisations REVOKE dans Service Broker (Transact-SQL)
Procédure stockée REVOKE – révocation d'autorisations d'objet (Transact-SQL)
Clé symétrique REVOKE – révocation d'autorisations de clé symétrique (Transact-SQL)
Synonym REVOKE – révocation d'autorisations d'objet (Transact-SQL)
Objets système REVOKE – révocation d'autorisations d'objet système (Transact-SQL)
Table REVOKE – révocation d'autorisations d'objet (Transact-SQL)
Type REVOKE – révocation d'autorisations de type (Transact-SQL)
User REVOKE – révocation d'autorisations de principal de base de données (Transact-SQL)
View REVOKE – révocation d'autorisations d'objet (Transact-SQL)
Collection de schémas XML REVOKE – révocation d'autorisations de collection de schémas XML (Transact-SQL)

Examples

A. Grant et revoke

S’applique à : SQL Server, SQL Database

L’exemple suivant crée un schéma, un utilisateur de base de données autonome et un nouveau rôle sur une base de données utilisateur. Il ajoute l’utilisateur au rôle, accorde l’autorisation SELECT sur le schéma au rôle, puis supprime (REVOKE) cette autorisation sur le rôle.

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
 

Voir aussi

Hiérarchie des autorisations (moteur de base de données)
REFUSER (Transact-SQL)
SUBVENTION (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)