

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# REVOKE
<a name="r_REVOKE"></a>

Supprime les autorisations d’accès d’un utilisateur ou d’un rôle, comme celles permettant de créer, de supprimer ou de mettre à jour des tables.

Vous ne pouvez accorder (GRANT) ou révoquer l’utilisation (REVOKE USAGE) sur un schéma externe à des utilisateurs et des rôles de base de données qu’en utilisant la syntaxe ON SCHEMA. Lorsque vous utilisez ON EXTERNAL SCHEMA avec AWS Lake Formation, vous pouvez uniquement ACCORDER et RÉVOQUER des autorisations pour un rôle Gestion des identités et des accès AWS (IAM). Pour connaître la liste des autorisations, reportez-vous à la syntaxe.

Pour les procédures stockées, les autorisations USAGE ON LANGUAGE `plpgsql` sont accordées par défaut à PUBLIC. L’autorisation EXECUTE ON PROCEDURE est uniquement accordée au propriétaire et aux super-utilisateurs par défaut.

Spécifiez dans la commande REVOKE les autorisations que vous souhaitez supprimer. Pour accorder des autorisations, utilisez la commande [GRANT](r_GRANT.md). 

## Syntaxe
<a name="r_REVOKE-synopsis"></a>

```
REVOKE [ GRANT OPTION FOR ]
{ { SELECT | INSERT | UPDATE | DELETE | DROP | REFERENCES | ALTER | TRUNCATE } [,...] | ALL [ PRIVILEGES ] }
ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] }
FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
{ { CREATE | TEMPORARY | TEMP | ALTER } [,...] | ALL [ PRIVILEGES ] }
ON DATABASE db_name [, ...]
FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
{ { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }
ON SCHEMA schema_name [, ...]
FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
EXECUTE
    ON FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...]
    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
{ { EXECUTE } [,...] | ALL [ PRIVILEGES ] }
    ON PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...]
    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
USAGE
    ON LANGUAGE language_name [, ...]
    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
[ RESTRICT ]

REVOKE [GRANT OPTION FOR] 
{ { ALTER | DROP} [,...] | ALL [ PRIVILEGES ] }
    ON COPY JOB job_name [,...]
    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]    

REVOKE [GRANT OPTION FOR]
{ { ALTER | DROP | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON TEMPLATE template_name [,...]
    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
```

### Révoquer les autorisations au niveau des colonnes pour les tables
<a name="revoke-column-level"></a>

Voici la syntaxe des autorisations de niveau colonne sur les tables et les vues Amazon Redshift. 

```
REVOKE { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) }
     ON { [ TABLE ] table_name [, ...] }
     FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
     [ RESTRICT ]
```

### Révoquer les autorisations ASSUMEROLE
<a name="revoke-assumerole-permissions"></a>

La syntaxe suivante permet de révoquer l’autorisation ASSUMEROLE pour les utilisateurs et les groupes ayant un rôle spécifique. 

```
REVOKE ASSUMEROLE
    ON { 'iam_role' [, ...]  | default | ALL }
    FROM { user_name | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
    FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL }
```

### Révoquer les autorisations pour Redshift Spectrum pour Lake Formation
<a name="revoke-spectrum-integration-with-lf-permissions"></a>

La syntaxe suivante s’applique à l’intégration de Redshift Spectrum à Lake Formation.

```
REVOKE [ GRANT OPTION FOR ]
{ SELECT | ALL [ PRIVILEGES ] } ( column_list )
    ON EXTERNAL TABLE schema_name.table_name
    FROM { IAM_ROLE iam_role } [, ...]

REVOKE [ GRANT OPTION FOR ]
{ { SELECT | ALTER | DROP | DELETE | INSERT }  [, ...] | ALL [ PRIVILEGES ] }
    ON EXTERNAL TABLE schema_name.table_name [, ...]
    FROM { { IAM_ROLE iam_role } [, ...] | PUBLIC }

REVOKE [ GRANT OPTION FOR ]
{ { CREATE | ALTER | DROP }  [, ...] | ALL [ PRIVILEGES ] }
    ON EXTERNAL SCHEMA schema_name [, ...]
    FROM { IAM_ROLE iam_role } [, ...]
```

### Révoquer les autorisations d’unité de partage des données
<a name="revoke-datashare-permissions"></a>

**Autorisations d’unité de partage des données côté producteur**  
La syntaxe suivante permet d’utiliser REVOKE pour supprimer les autorisations ALTER ou SHARE d’un utilisateur ou d’un rôle. L’utilisateur dont les autorisations ont été révoquées ne peut plus modifier l’unité de partage des données ni en autoriser l’utilisation à un consommateur. 

```
REVOKE { ALTER | SHARE } ON DATASHARE datashare_name
 FROM { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
```

La syntaxe suivante permet d’utiliser REVOKE pour supprimer l’accès d’un consommateur à une unité de partage des données.

```
REVOKE USAGE
 ON DATASHARE datashare_name
 FROM NAMESPACE 'namespaceGUID' [, ...] | ACCOUNT 'accountnumber' [ VIA DATA CATALOG ] [, ...]
```

L’exemple suivant montre la révocation de l’utilisation d’une unité de partage des données depuis un compte Lake Formation.

```
REVOKE USAGE ON DATASHARE salesshare FROM ACCOUNT '123456789012' VIA DATA CATALOG;
```

**Autorisations d’unité de partage des données côté consommateur**  
Voici la syntaxe REVOKE pour les autorisations d’utilisation d’unité de partage des données sur une base de données spécifique ou un schéma créé à partir d’une unité de partage des données. La révocation de l’autorisation d’utilisation d’une base de données créée à l’aide de la clause WITH PERMISSIONS ne révoque aucune autorisation supplémentaire que vous avez accordée à un utilisateur ou à un rôle, y compris les autorisations de niveau objet accordées pour les objets sous-jacents. Si vous accordez de nouveau l’autorisation d’utilisation à cet utilisateur ou à ce rôle, il conserve toutes les autorisations supplémentaires dont il disposait avant que vous ne révoquiez l’utilisation.

```
REVOKE USAGE ON { DATABASE shared_database_name [, ...] | SCHEMA shared_schema}
 FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
```

### Révocation d’autorisations étendues
<a name="revoke-scoped-permissions"></a>

Les autorisations étendues vous permettent d’accorder des autorisations à un utilisateur ou à un rôle sur tous les objets d’un type au sein d’une base de données ou d’un schéma. Les utilisateurs et les rôles dotés d’autorisations étendues ont les autorisations spécifiées sur tous les objets actuels et futurs de la base de données ou du schéma.

Vous pouvez consulter l’étendue des autorisations délimitées au niveau de la base de données dans [SVV\$1DATABASE\$1PRIVILEGES](r_SVV_DATABASE_PRIVILEGES.md). Vous pouvez consulter l’étendue des autorisations délimitées au niveau du schéma dans [SVV\$1SCHEMA\$1PRIVILEGES](r_SVV_SCHEMA_PRIVILEGES.md).

Pour plus d’informations sur les autorisations étendues, consultez [Autorisations délimitées](t_scoped-permissions.md).

La syntaxe suivante permet de révoquer des autorisations étendues aux utilisateurs et rôles. 

```
REVOKE [ GRANT OPTION ] 
{ CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }
FOR SCHEMAS IN
DATABASE db_name 
FROM { username | ROLE role_name } [, ...]

REVOKE [ GRANT OPTION ]
{ { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [PRIVILEGES] } }
FOR TABLES IN
{ SCHEMA schema_name [ DATABASE db_name ] | DATABASE db_name }
FROM { username | ROLE role_name } [, ...]

REVOKE [ GRANT OPTION ] { EXECUTE | ALL [ PRIVILEGES ] }
FOR FUNCTIONS IN 
{ SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name }
FROM { username | ROLE role_name } [, ...]

REVOKE [ GRANT OPTION ] { EXECUTE | ALL [ PRIVILEGES ] }
FOR PROCEDURES IN
{ SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name }
FROM { username | ROLE role_name } [, ...]

REVOKE [ GRANT OPTION ] USAGE
FOR LANGUAGES IN
DATABASE db_name
FROM { username | ROLE role_name } [, ...]  

REVOKE [GRANT_OPTION] 
{ { CREATE | ALTER | DROP} [,...] | ALL [ PRIVILEGES ] }
FOR COPY JOBS 
IN DATABASE db_name
FROM { username [ WITH GRANT OPTION ] | ROLE role_name } [, ...]      

REVOKE [ GRANT OPTION ]
{ {ALTER | DROP  | USAGE } [,...] | ALL [ PRIVILEGES ] }
FOR TEMPLATES IN
{ SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name }
FROM { username | ROLE role_name } [, ...]
```

Notez que les autorisations étendues ne font pas de distinction entre les autorisations relatives aux fonctions et aux procédures. Par exemple, l’instruction suivante révoque les autorisations `EXECUTE` pour les fonctions et les procédures de `bob` dans le schéma `Sales_schema`. 

```
REVOKE EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema FROM bob;
```

### Révoquer les autorisations de machine learning
<a name="revoke-model-permissions"></a>

Voici la syntaxe pour les autorisations des modèles de machine learning sur Amazon Redshift.

```
REVOKE [ GRANT OPTION FOR ]
    CREATE MODEL FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
    [ RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { EXECUTE | ALL [ PRIVILEGES ] }
    ON MODEL model_name [, ...]

    FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
    [ RESTRICT ]
```

### Révoquer les autorisations d’un rôle
<a name="revoke-roles"></a>

Voici la syntaxe permettant de révoquer les autorisations de rôle sur Amazon Redshift.

```
REVOKE [ ADMIN OPTION FOR ] { ROLE role_name } [, ...] FROM { user_name } [, ...]
```

```
REVOKE { ROLE role_name } [, ...] FROM { ROLE role_name } [, ...]
```

Voici la syntaxe permettant de révoquer les autorisations système des rôles sur Amazon Redshift.

```
REVOKE
  {
    { CREATE USER | DROP USER | ALTER USER |
    CREATE SCHEMA | DROP SCHEMA |
    ALTER DEFAULT PRIVILEGES |
    ACCESS CATALOG |
    CREATE TABLE | DROP TABLE | ALTER TABLE |
    CREATE OR REPLACE FUNCTION | CREATE OR REPLACE EXTERNAL FUNCTION |
    DROP FUNCTION |
    CREATE OR REPLACE PROCEDURE | DROP PROCEDURE |
    CREATE OR REPLACE VIEW | DROP VIEW |
    CREATE MODEL | DROP MODEL |
    CREATE DATASHARE | ALTER DATASHARE | DROP DATASHARE |
    CREATE LIBRARY | DROP LIBRARY |
    CREATE ROLE | DROP ROLE
    TRUNCATE TABLE
    VACUUM | ANALYZE | CANCEL }[, ...]
  }
  | { ALL [ PRIVILEGES ] }
FROM { ROLE role_name } [, ...]
```

### Révocation des autorisations liées aux politiques de sécurité
<a name="revoke-role-level"></a>

Voici la syntaxe permettant de révoquer des autorisations pour expliquer les filtres de politique de sécurité d’une requête dans le plan EXPLAIN. Les politiques de sécurité possibles incluent des politiques de sécurité au niveau des lignes et des politiques de masquage dynamique des données.

```
REVOKE EXPLAIN { RLS | MASKING } FROM ROLE rolename 
```

Voici la syntaxe permettant de révoquer des autorisations permettant de contourner les politiques de sécurité au niveau des lignes pour une requête. 

```
REVOKE IGNORE RLS FROM ROLE rolename 
```

Voici la syntaxe permettant de révoquer les autorisations SELECT de la politique de sécurité spécifiée. Les politiques de sécurité possibles incluent des politiques de sécurité au niveau des lignes et des politiques de masquage dynamique des données.

```
REVOKE SELECT ON [ TABLE ] table_name [, ...]
            FROM { RLS | MASKING } POLICY policy_name [, ...]
```

## Parameters
<a name="r_REVOKE-parameters"></a>

GRANT OPTION FOR   
Révoque uniquement l’option d’accorder une autorisation spécifiée à d’autres utilisateurs et ne révoque pas l’autorisation elle-même. Vous ne pouvez pas retirer GRANT OPTION d’un groupe ou de PUBLIC.

SELECT   
Révoque l’autorisation de sélectionner les données d’une table ou d’une vue à l’aide d’une instruction SELECT.

INSERT   
Révoque l’autorisation de charger les données dans une table à l’aide d’une instruction INSERT ou COPY. 

UPDATE   
Révoque l’autorisation de mettre à jour une colonne de table à l’aide d’une instruction UPDATE. 

DELETE   
Révoque l’autorisation de supprimer une ligne d’une table.

REFERENCES   
Révoque l’autorisation de créer une contrainte de clé étrangère. Vous devez révoquer cette autorisation sur la table référencée et sur la table qui fait référence.

TRUNCATE  
Révoque l’autorisation de tronquer une table. Sans cette autorisation, seul le propriétaire d’une table ou un super-utilisateur peut tronquer une table. Pour plus d’informations sur la commande TRUNCATE, consultez [TRUNCATE](r_TRUNCATE.md).

ALL [ PRIVILEGES ]   
Révoque simultanément toutes les autorisations disponibles de l’utilisateur ou groupe spécifié. Le mot-clé PRIVILEGES est facultatif.  
 Amazon Redshift ne prend pas en charge les autorisations RULE et TRIGGER. Pour plus d’informations, consultez la section concernant [Fonctions PostgreSQL non prises en charge](c_unsupported-postgresql-features.md). 

ALTER  
En fonction de l’objet de la base de données, révoque les autorisations suivantes de l’utilisateur ou du groupe d’utilisateurs :   
+ Pour les tables, ALTER révoque la modification d’une table ou d’une vue. Pour plus d’informations, consultez [ALTER TABLE](r_ALTER_TABLE.md).
+ Pour les bases de données, ALTER révoque la modification d’une base de données. Pour plus d’informations, consultez [ALTER DATABASE](r_ALTER_DATABASE.md).
+ Pour les schémas, ALTER révoque la modification d’un schéma. Pour plus d’informations, consultez [ALTER SCHEMA](r_ALTER_SCHEMA.md).
+ Pour les tables externes, ALTER révoque la modification d’une table dans un AWS Glue Data Catalog qui est activé pour Lake Formation. Cette autorisation s’applique uniquement lors de l’utilisation de Lake Formation.

DROP  
En fonction de l’objet de la base de données, révoque les autorisations suivantes de l’utilisateur ou du rôle :  
+  Pour les tables, DROP révoque l’autorisation de suppression d’une table ou d’une vue. Pour plus d’informations, consultez [DROP TABLE](r_DROP_TABLE.md). 
+  Pour les bases de données, DROP révoque l’autorisation de suppression d’une base de données. Pour plus d’informations, consultez [DROP DATABASE](r_DROP_DATABASE.md). 
+  Pour les schémas, DROP révoque l’autorisation de suppression d’un schéma. Pour plus d’informations, consultez [DROP SCHEMA](r_DROP_SCHEMA.md). 

ASSUMEROLE  <a name="assumerole"></a>
Révoque l’autorisation d’exécuter les commandes COPY, UNLOAD, EXTERNAL FUNCTION ou CREATE MODEL à partir d’utilisateurs, de rôles ou de groupes possédant un rôle spécifié. 

ON [ TABLE ] *nom\$1table*   
Révoque les autorisations spécifiées sur une table ou une vue. Le mot-clé TABLE est facultatif.

ON ALL TABLES IN SCHEMA *nom\$1schéma*   
Révoque les autorisations spécifiées sur toutes les tables du schéma référencé.

( *nom\$1colonne* [,...] ) ON TABLE *nom\$1table*   <a name="revoke-column-level-privileges"></a>
Révoque les autorisations spécifiées des utilisateurs, groupes ou PUBLIC sur les colonnes spécifiées de la table ou de la vue Amazon Redshift.

( *column\$1list* ) ON EXTERNAL TABLE *schema\$1name.table\$1name*   <a name="revoke-external-table-column"></a>
Révoque les autorisations spécifiées d’un rôle IAM sur les colonnes spécifiées de la table Lake Formation dans le schéma référencé.

ON EXTERNAL TABLE *schema\$1name.table\$1name*   <a name="revoke-external-table"></a>
Révoque les autorisations spécifiées d’un rôle IAM sur les tables Lake Formation spécifiées dans le schéma référencé.

ON EXTERNAL SCHEMA *schema\$1name*   <a name="revoke-external-schema"></a>
Révoque les autorisations spécifiées d’un rôle IAM sur le schéma référencé.

FROM IAM\$1ROLE *iam\$1role*   <a name="revoke-from-iam-role"></a>
Indique le rôle IAM qui perd les autorisations.

ROLE *role\$1name*   
Révoque les autorisations du rôle spécifié.

GROUP *group\$1name*   
Révoque les autorisations du groupe d’utilisateurs spécifié.

PUBLIC   
Révoque les autorisations spécifiées pour tous les utilisateurs. PUBLIC représente un groupe qui inclut toujours tous les utilisateurs. Les autorisations d’un utilisateur sont la somme des autorisations accordées à PUBLIC, des autorisations accordées aux groupes auxquels l’utilisateur appartient et des autorisations accordées à l’utilisateur à titre individuel.  
La révocation de PUBLIC d’une table externe Lake Formation entraîne la révocation de l’autorisation du groupe *everyone* de Lake Formation.

CREATE   
En fonction de l’objet de la base de données, révoque les autorisations suivantes de l’utilisateur ou du groupe :  
+ Pour les bases de données, l’utilisation de la clause CREATE pour REVOKE empêche les utilisateurs de créer des schémas dans la base de données.
+ Pour les schémas, l’utilisation de la clause CREATE pour REVOKE empêche les utilisateurs de créer des objets dans un schéma. Pour renommer un objet, l’utilisateur doit disposer de l’autorisation CREATE et posséder l’objet à renommer. 
Par défaut, tous les utilisateurs disposent des autorisations CREATE et USAGE sur le schéma PUBLIC.

TEMPORARY \$1 TEMP   
Révoque l’autorisation de créer des tables temporaires dans la base de données spécifiée.  
Par défaut, les utilisateurs ont l’autorisation de créer des tables temporaires grâce à leur appartenance automatique au groupe PUBLIC. Pour retirer à tout utilisateur l’autorisation de créer des tables temporaires, révoquez l’autorisation TEMP du groupe PUBLIC, puis accordez explicitement l’autorisation de créer des tables temporaires à des utilisateurs ou groupes d’utilisateurs spécifiques.

ON DATABASE *nom\$1db*   
Révoque les autorisations sur la base de données spécifiée.

USAGE   
Révoque les autorisations USAGE sur les objets d’un schéma spécifique, ce qui rend ces objets inaccessibles aux utilisateurs. Les actions spécifiques sur ces objets doivent être révoquées séparément (comme l’autorisation EXECUTE sur les autorisations).  
Par défaut, tous les utilisateurs disposent des autorisations CREATE et USAGE sur le schéma PUBLIC.

ON SCHEMA *nom\$1schéma*   
Révoque les autorisations sur le schéma spécifié. Vous pouvez utiliser les autorisations de schéma pour contrôler la création de tables ; l’autorisation CREATE pour une base de données ne contrôle que la création de schémas.

RESTRICT   
Révoque uniquement les autorisations que l’utilisateur a directement accordées. Il s’agit du comportement par défaut.

EXECUTE ON PROCEDURE *procedure\$1name*   
Révoque l’autorisation EXECUTE sur une procédure stockée spécifique. Comme les noms de procédures stockées peuvent être surchargés, vous devez inclure la liste des arguments de la procédure. Pour plus d'informations, consultez [Dénomination des procédures stockées](stored-procedure-naming.md).

EXECUTE ON ALL PROCEDURES IN SCHEMA *procedure\$1name*   
Révoque les autorisations spécifiées pour toutes les procédures du schéma référencé.

USAGE ON LANGUAGE *nom\$1langage*   
Révoque l’autorisation d’utilisation d’une langue. Pour les fonctions définies par l'utilisateur en Python (UDFs), utilisez`plpythonu`. Pour SQL UDFs, utilisez`sql`. Pour les procédures stockées, utilisez `plpgsql`.   
Pour créer une fonction définie par l’utilisateur, vous devez avoir l’autorisation pour USAGE ON LANGUAGE pour SQL ou `plpythonu` (Python). Par défaut, USAGE ON LANGUAGE SQL est accordé à PUBLIC. Toutefois, vous devez accorder explicitement USAGE ON LANGUAGE PLPYTHONU à des utilisateurs ou des groupes spécifiques.   
Pour révoquer le privilège USAGE pour SQL, révoquez d’abord USAGE de PUBLIC. Accordez ensuite l'utilisation de SQL uniquement aux utilisateurs ou groupes spécifiques autorisés à créer du SQL UDFs. L’exemple suivant révoque le privilège USAGE pour SQL de PUBLIC, puis accorde USAGE au groupe d’utilisateurs `udf_devs`.   

```
revoke usage on language sql from PUBLIC;
grant usage on language sql to group udf_devs;
```
Pour plus d'informations, consultez [Sécurité et autorisations des fonctions définies par l’utilisateur](udf-security-and-privileges.md).   
Pour révoquer le privilège USAGE pour les procédures stockées, révoquez d’abord USAGE de PUBLIC. Ensuite, accordez le privilège USAGE sur `plpgsql` uniquement aux utilisateurs ou groupes spécifiques autorisés à créer des procédures stockées. Pour plus d’informations, consultez [Sécurité et privilèges des procédures stockées](stored-procedure-security-and-privileges.md). 

ON COPY JOB *job\$1name*  <a name="on-copy-job-revoke"></a>
Révoque les autorisations spécifiées à une tâche copy.

FOR \$1 ALL \$1 COPY \$1 UNLOAD \$1 EXTERNAL FUNCTION \$1 CREATE MODEL \$1 [, ...]  <a name="revoke-for"></a>
Spécifie la commande SQL pour laquelle l’autorisation est révoquée. Vous pouvez spécifier ALL pour révoquer l’autorisation sur les instructions COPY, UNLOAD, EXTERNAL FUNCTION et CREATE MODEL. Cette clause s’applique uniquement à la révocation de l’autorisation ASSUMEROLE.

ALTER  
Révoque l’autorisation ALTER pour les utilisateurs ou les groupes d’utilisateurs, ce qui permet à ceux qui ne possèdent pas une unité de partage des données de modifier cette dernière. Cette autorisation est nécessaire pour ajouter ou supprimer des objets d’une unité de partage des données, ou pour définir la propriété PUBLICACCESSIBLE. Pour plus d’informations, consultez [ALTER DATASHARE](r_ALTER_DATASHARE.md).

SHARE  
Révoque les autorisations pour les utilisateurs et les groupes d’utilisateurs d’ajouter des consommateurs à une unité de partage des données. La révocation de cette autorisation est nécessaire pour empêcher le consommateur concerné d’accéder à l’unité de partage des données à partir de ses clusters. 

ON DATASHARE *datashare\$1name *  
Accorde les autorisations spécifiées sur l’unité de partage des données référencée.

FROM username  
Indique que l’utilisateur a perdu les autorisations.

FROM GROUP *group\$1name*  
Indique le groupe d’utilisateurs qui perd les autorisations.

WITH GRANT OPTION  
Indique que l’utilisateur qui perd les autorisations peut à son tour révoquer les mêmes autorisations pour d’autres personnes. Vous ne pouvez pas révoquer le privilège WITH GRANT OPTION d’un groupe ou de PUBLIC. 

USAGE  
Lorsque USAGE est révoqué pour un compte consommateurs ou un espace de noms dans le même compte, le compte consommateurs ou l’espace de noms spécifié dans un compte ne peut pas accéder à l’unité de partage des données et aux objets de l’unité de partage des données en lecture seule.   
La révocation de l’autorisation d’UTILISATION révoque l’accès des consommateurs à une unité de partage des données. 

FROM NAMESPACE ’clusternamespace GUID’   
Indique l’espace de noms dans le même compte que celui dont les consommateurs ont perdu les autorisations sur l’unité de partage des données. Les espaces de noms utilisent un identifiant global unique (GUID) alphanumérique de 128 bits.

FROM ACCOUNT ’accountnumber’ [ VIA DATA CATALOG ]  
Indique le numéro de compte d’un autre compte dont les consommateurs perdent les autorisations sur le partage des données. La spécification « VIA DATA CATALOG » indique que vous révoquez un compte Lake Formation à utiliser l’unité de partage des données. Si vous omettez le numéro de compte, vous révoquez le compte qui possède le cluster.

ON DATABASE *shared\$1database\$1name> [, ...]*   <a name="revoke-datashare"></a>
Révoque les autorisations d’utilisation spécifiées sur la base de données spécifiée qui a été créée dans l’unité de partage des données spécifiée. 

ON SCHEMA* shared\$1schema*   <a name="revoke-datashare"></a>
Révoque les autorisations spécifiées sur le schéma spécifié qui a été créé dans l’unité de partage des données spécifiée.

FOR \$1 SCHEMAS \$1 TABLES \$1 FUNCTIONS \$1 PROCEDURES \$1 LANGUAGES \$1 COPY JOBS\$1 IN   
Spécifie les objets de base de données dont révoquer l’autorisation. Les paramètres situés après IN définissent l’étendue de l’autorisation révoquée.

CREATE MODEL  
Révoque l’autorisation CREATE MODEL pour créer des modèles de machine learning dans la base de données spécifiée.

ON MODEL *model\$1name*  
Révoque l’autorisation EXECUTE pour un modèle spécifique. 

ACCESS CATALOG  
Révoque l’autorisation d’afficher les métadonnées pertinentes des objets auxquels le rôle a accès.

[ ADMIN OPTION FOR ] \$1 role \$1 [, ...]  
Rôle que vous révoquez pour un utilisateur spécifié disposant de la clause WITH ADMIN OPTION.

FROM \$1 role \$1 [, ...]  
Rôle pour lequel vous révoquez le rôle spécifié.

EXPLAIN \$1 RLS \$1 MASKING \$1 FROM ROLE *rolename*  
Révoque à un rôle l’autorisation d’expliquer les filtres de politique de sécurité d’une requête dans le plan EXPLAIN. RLS révoque l’autorisation d’explication pour les filtres de politique de sécurité au niveau des lignes. MASKING révoque l’autorisation d’explication pour les filtres de politique de masquage dynamique des données.

IGNORE RLS FROM ROLE *rolename*   
Révoque à un rôle l’autorisation de contourner les politiques de sécurité au niveau des lignes pour une requête.

FROM \$1 RLS \$1 MASKING \$1 POLICY *policy\$1name*  
Indique la politique de sécurité qui perd les autorisations. TO RLS POLICY indique une politique de sécurité de niveau des lignes. TO MASKING POLICY indique une politique de masquage dynamique des données.

## Notes d’utilisation
<a name="r_REVOKE-usage-notes-link"></a>

Pour en savoir plus sur les notes d’utilisation de REVOKE, consultez [Notes d’utilisation](r_REVOKE-usage-notes.md).

## Exemples
<a name="r_REVOKE-examples-link"></a>

Pour des exemples d’utilisation de REVOKE, consultez [Exemples](r_REVOKE-examples.md).

# Notes d’utilisation
<a name="r_REVOKE-usage-notes"></a>

Pour retirer les privilèges à un objet, vous devez répondre à l’un des critères suivants :
+ Être le propriétaire de l’objet.
+ Être un super-utilisateur.
+ Avoir un privilège accordé pour cet objet et ce privilège.

  Par exemple, la commande suivante autorise l’utilisateur HR à exécuter des commandes SELECT sur la table des employés et à accorder et révoquer le même privilège aux autres utilisateurs.

  ```
  grant select on table employees to HR with grant option;
  ```

  HR ne peut pas révoquer de privilèges pour une opération autre que SELECT, ou sur toute autre table que celle des employés. 

Les super-utilisateurs peuvent accéder à tous les objets, quelle que soit les commandes GRANT et REVOKE qui définissent les privilèges d’objet.

PUBLIC représente un groupe qui inclut toujours tous les utilisateurs. Par défaut, tous les membres de PUBLIC disposent des privilèges CREATE et USAGE sur le schéma PUBLIC. Pour limiter toutes les autorisations d’un utilisateur sur le schéma PUBLIC, vous devez d’abord révoquer toutes les autorisations de PUBLIC sur le schéma PUBLIC, puis accorder des privilèges à des utilisateurs ou des groupes spécifiques. L’exemple suivant contrôle les privilèges de création de table du schéma PUBLIC.

```
revoke create on schema public from public;
```

Pour supprimer des privilèges d’une table Lake Formation, le rôle IAM associé au schéma externe de la table doit avoir l’autorisation d’accorder des privilèges à la table externe. L’exemple suivant crée un schéma externe avec un rôle IAM `myGrantor` associé. Le rôle IAM `myGrantor` a l’autorisation de supprimer des autorisations. La commande REVOKE utilise l’autorisation du rôle IAM `myGrantor` associé au schéma externe pour supprimer des autorisations du rôle IAM `myGrantee`.

```
create external schema mySchema
from data catalog
database 'spectrum_db'
iam_role 'arn:aws:iam::123456789012:role/myGrantor'
create external database if not exists;
```

```
revoke select
on external table mySchema.mytable
from iam_role 'arn:aws:iam::123456789012:role/myGrantee';
```

**Note**  
Si le rôle IAM dispose également d'une `ALL` AWS Glue Data Catalog autorisation activée pour Lake Formation, l'`ALL`autorisation n'est pas révoquée. Seule l’autorisation `SELECT` est supprimée. Vous pouvez afficher les autorisations Lake Formation dans la console Lake Formation.

## Notes d’utilisation pour la révocation de l’autorisation ASSUMEROLE
<a name="r_REVOKE-usage-notes-assumerole"></a>

Les notes d’utilisation suivantes s’appliquent à la révocation du privilège ASSUMEROLE dans Amazon Redshift. 

Seul un super-utilisateur de base de données peut révoquer le privilège ASSUMEROLE pour les utilisateurs et les groupes. Un super-utilisateur conserve toujours le privilège ASSUMEROLE. 

Pour activer l’utilisation du privilège ASSUMEROLE pour les utilisateurs et les groupes, un super-utilisateur exécute l’instruction suivante une fois sur le cluster. Avant d’accorder le privilège ASSUMEROLE aux utilisateurs et aux groupes, un super-utilisateur doit exécuter l’instruction suivante une fois sur le cluster. 

```
revoke assumerole on all from public for all;
```

## Notes d’utilisation pour la révocation des autorisations de machine learning
<a name="r_REVOKE-usage-notes-create-model"></a>

Vous ne pouvez pas accorder ou révoquer directement les autorisations liées à une fonction ML. Une fonction ML appartient à un modèle ML et les autorisations sont contrôlées par le biais du modèle. En revanche, vous pouvez révoquer les autorisations liées au modèle ML. L’exemple suivant montre comment révoquer l’autorisation d’exécution de tous les utilisateurs associés au modèle `customer_churn`.

```
REVOKE EXECUTE ON MODEL customer_churn FROM PUBLIC;
```

Vous pouvez également révoquer toutes les autorisations d’un utilisateur pour le modèle ML `customer_churn`.

```
REVOKE ALL on MODEL customer_churn FROM ml_user;
```

L’octroi ou la révocation de l’autorisation `EXECUTE` liée à une fonction de ML échouera s’il existe une fonction de ML dans le schéma, même si cette fonction de ML dispose déjà de l’autorisation `EXECUTE` par le biais de `GRANT EXECUTE ON MODEL`. Nous vous recommandons d’utiliser un schéma distinct lorsque vous utilisez la commande `CREATE MODEL` afin de conserver les fonctions ML dans un schéma distinct. L’exemple suivant vous montre comment procéder.

```
CREATE MODEL ml_schema.customer_churn
FROM customer_data
TARGET churn
FUNCTION ml_schema.customer_churn_prediction
IAM_ROLE default
SETTINGS (
 S3_BUCKET 'amzn-s3-demo-bucket'
);
```

# Exemples
<a name="r_REVOKE-examples"></a>

L’exemple suivant retire les privilèges INSERT sur la table SALES au groupe d’utilisateurs GUESTS. Cette commande empêche les membres de GUESTS de pouvoir charger des données dans la table SALES à l’aide de la commande INSERT. 

```
revoke insert on table sales from group guests;
```

L’exemple suivant retire le privilège SELECT sur toutes les tables du schéma QA\$1TICKIT à l’utilisateur `fred`.

```
revoke select on all tables in schema qa_tickit from fred;
```

L’exemple ci-dessous retire le privilège de sélectionner à partir d’une vue de l’utilisateur `bobr`.

```
revoke select on table eventview from bobr;
```

L’exemple suivant retire le privilège de créer des tables temporaires dans la base de données TICKIT à tous les utilisateurs.

```
revoke temporary on database tickit from public;
```

L’exemple suivant retire à l’utilisateur `cust_name` le privilège SELECT sur les colonnes `cust_phone` et `cust_profile` de la table `user1`. 

```
revoke select(cust_name, cust_phone) on cust_profile from user1;
```

L’exemple suivant retire au groupe `sales_group` le privilège SELECT sur les colonnes `cust_name` et `cust_phone` et le privilège UPDATE sur la colonne `cust_contact_preference` de la table `cust_profile`. 

```
revoke select(cust_name, cust_phone), update(cust_contact_preference) on cust_profile from group sales_group;
```

L’exemple suivant montre l’utilisation du mot-clé ALL pour retirer au groupe `sales_admin` les privilèges SELECT et UPDATE sur trois colonnes de la table `cust_profile`. 

```
revoke ALL(cust_name, cust_phone,cust_contact_preference) on cust_profile from group sales_admin;
```

L’exemple suivant retire à l’utilisateur `cust_name` le privilège SELECT sur la colonne `cust_profile_vw` de la vue `user2`. 

```
revoke select(cust_name) on cust_profile_vw from user2;
```

## Exemples de révocation de l’autorisation USAGE des bases de données créées à partir d’unités de partage des données
<a name="r_REVOKE-examples-datashare"></a>

L’exemple suivant révoque l’accès à l’unité de partage des données `salesshare` depuis l’espace de noms `13b8833d-17c6-4f16-8fe4-1a018f5ed00d`.

```
REVOKE USAGE ON DATASHARE salesshare FROM NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
```

L’exemple suivant révoque l’autorisation USAGE de `Bob` sur `sales_db`.

```
REVOKE USAGE ON DATABASE sales_db FROM Bob;
```

L’exemple suivant révoque l’autorisation USAGE du rôle `Analyst_role` sur `sales_schema`.

```
REVOKE USAGE ON SCHEMA sales_schema FROM ROLE Analyst_role;
```

## Exemples de révocation d’autorisations étendues
<a name="r_REVOKE-examples-scoped"></a>

L’exemple suivant révoque l’utilisation pour tous les schémas actuels et futurs de la base de données `Sales_db` pour le rôle `Sales`.

```
REVOKE USAGE FOR SCHEMAS IN DATABASE Sales_db FROM ROLE Sales;
```

L’exemple suivant révoque la possibilité d’accorder à l’utilisateur `alice` l’autorisation SELECT pour toutes les tables actuelles et futures de la base de données `Sales_db`. `alice` conserve l’accès à toutes les tables de `Sales_db`.

```
REVOKE GRANT OPTION SELECT FOR TABLES IN DATABASE Sales_db FROM alice;
```

L’exemple suivant révoque l’autorisation EXECUTE accordée à l’utilisateur `bob` pour les fonctions du schéma `Sales_schema`.

```
REVOKE EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema FROM bob;
```

L’exemple suivant révoque toutes les autorisations accordées au rôle `Sales` pour toutes les tables du schéma `ShareSchema` de la base de données `ShareDb`. Lorsque vous spécifiez le schéma, vous pouvez aussi spécifier la base de données du schéma en utilisant le format en deux parties `database.schema`.

```
REVOKE ALL FOR TABLES IN SCHEMA ShareDb.ShareSchema FROM ROLE Sales;
```

L’exemple suivant est le même que le précédent. Vous pouvez spécifier la base de données du schéma à l’aide du mot-clé `DATABASE` au lieu d’utiliser un format en deux parties.

```
REVOKE ALL FOR TABLES IN SCHEMA ShareSchema DATABASE ShareDb FROM ROLE Sales;
```

## Exemples de révocation du privilège ASSUMEROLE
<a name="r_REVOKE-examples-assumerole"></a>

Voici des exemples de révocation du privilège ASSUMEROLE. 

Un super-utilisateur doit activer l’utilisation du privilège ASSUMEROLE pour les utilisateurs et les groupes en exécutant l’instruction suivante une fois sur le cluster : 

```
revoke assumerole on all from public for all;
```

L’instruction suivante révoque le privilège ASSUMEROLE de l’utilisateur reg\$1user1 sur tous les rôles pour toutes les opérations. 

```
revoke assumerole on all from reg_user1 for all;
```

## Exemples de révocation du privilège ROLE
<a name="r_REVOKE-examples-role"></a>

L’exemple suivant révoque le rôle sample\$1role1 pour le rôle sample\$1role2.

```
CREATE ROLE sample_role2;
GRANT ROLE sample_role1 TO ROLE sample_role2;
REVOKE ROLE sample_role1 FROM ROLE sample_role2;
```

L’exemple suivant révoque les privilèges système pour l’utilisateur user1.

```
GRANT ROLE sys:DBA TO user1;
REVOKE ROLE sys:DBA FROM user1;
```

L’exemple suivant révoque les rôles sample\$1role1 et sample\$1role2 pour l’utilisateur user1.

```
CREATE ROLE sample_role1;
CREATE ROLE sample_role2;
GRANT ROLE sample_role1, ROLE sample_role2 TO user1;
REVOKE ROLE sample_role1, ROLE sample_role2 FROM user1;
```

L’exemple suivant révoque le rôle sample\$1role2 avec la clause WITH ADMIN OPTION pour l’utilisateur user1.

```
GRANT ROLE sample_role2 TO user1 WITH ADMIN OPTION;
REVOKE ADMIN OPTION FOR ROLE sample_role2 FROM user1;
REVOKE ROLE sample_role2 FROM user1;
```

L’exemple suivant révoque les rôles sample\$1role1 et sample\$1role2 pour le rôle sample\$1role5.

```
CREATE ROLE sample_role5;
GRANT ROLE sample_role1, ROLE sample_role2 TO ROLE sample_role5;
REVOKE ROLE sample_role1, ROLE sample_role2 FROM ROLE sample_role5;
```

L’exemple suivant révoque les privilèges système CREATE SCHEMA et DROP SCHEMA pour le rôle sample\$1role1.

```
GRANT CREATE SCHEMA, DROP SCHEMA TO ROLE sample_role1;
REVOKE CREATE SCHEMA, DROP SCHEMA FROM ROLE sample_role1;
```