REVOKE CALLER

Révoque les privilèges précédemment accordés au propriétaire d’un exécutable à l’aide d’une autorisation de l’appelant.

Les variantes de la commande REVOKE CALLER sont les suivantes :

  • REVOKE CALLER — Révoquer des privilèges spécifiques sur un objet spécifique.

  • REVOKE ALL CALLER PRIVILEGES — Révoquer tous les privilèges d’un objet spécifique. L’exécutable ne pourra pas s’exécuter avec les privilèges de l’appelant lorsqu’il tentera d’accéder à l’objet.

  • REVOKE INHERITED CALLER — Révoquer les autorisations de l’appelant sur tous les objets actuels et futurs du même type lorsqu’ils partagent un schéma, une base de données ou un compte commun. Seuls les privilèges figurant dans une liste spécifiée sont révoqués.

  • REVOKE ALL INHERITED CALLER PRIVILEGES — Révoquer les autorisations de l’appelant sur tous les objets actuels et futurs du même type lorsqu’ils partagent un schéma, une base de données ou un compte commun. Tous les privilèges sont révoqués ; l’exécutable ne pourra pas être exécuté avec les privilèges de l’appelant.

Syntaxe

REVOKE CALLER <object_privilege> [ , <object_privilege> ... ]
  ON <object_type> <object_name>
  FROM { ROLE | DATABASE ROLE } <grantee_name>

REVOKE ALL CALLER PRIVILEGES
  ON <object_type> <object_name>
  FROM { ROLE | DATABASE ROLE } <grantee_name>

REVOKE INHERITED CALLER <object_privilege> [ , <object_privilege> ... ]
  ON ALL <object_type_plural>
  IN { ACCOUNT | DATABASE <db_name> | SCHEMA <schema_name> | APPLICATION <app_name> | APPLICATION PACKAGE <app_pkg_name> }
  FROM { ROLE | DATABASE ROLE } <grantee_name>

REVOKE ALL INHERITED CALLER PRIVILEGES
  ON ALL <object_type_plural>
  IN { ACCOUNT | DATABASE <db_name> | SCHEMA <schema_name> | APPLICATION <app_name> | APPLICATION PACKAGE <app_pkg_name> }
  FROM { ROLE | DATABASE ROLE } <grantee_name>
Copy

Paramètres

object_privilege [ , object_privilege ... ]

Les privilèges de l’objet que vous souhaitez révoquer. Les exécutables appartenant au rôle spécifié ne peuvent plus être exécutés avec ces privilèges. Pour obtenir la liste des privilèges pour un type d’objet spécifique, voir Privilèges de contrôle d’accès.

Utilisez une liste délimitée par des virgules pour spécifier plusieurs privilèges d’objet.

ON object_type object_name

L’objet, y compris son type, pour lequel vous souhaitez révoquer les privilèges. Utilisez la forme singulière de object_type, par exemple, TABLE ou WAREHOUSE.

ON ALL object_type_plural IN ACCOUNT ou . ON ALL object_type_plural IN DATABASE db_name ou . ON ALL object_type_plural IN SCHEMA schema_name ou . ON ALL object_type_plural IN APPLICATION app_name ou . ON ALL object_type_plural IN APPLICATION PACKAGE app_pkg_name

Révoque les privilèges sur tous les objets d’un certain type. Utilisez la forme plurielle du type d’objet, par exemple TABLES ou WAREHOUSES.

Vous pouvez utiliser l’instruction REVOKE pour révoquer l’accès à tous les objets du compte courant ou uniquement aux objets de la base de données, du schéma, de l’application ou du paquet d’application spécifiés.

FROM ROLE grantee_name ou . FROM DATABASE ROLE grantee_name

Propriétaire d’un exécutable qui a bénéficié précédemment d’une autorisation de l’appelant.

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :

Privilège

Objet

Remarques

MANAGE CALLER GRANTS

Compte

Le privilège MANAGE CALLER GRANTS au niveau du compte ne concerne que les autorisations de l’appelant. Il ne vous permet pas de révoquer des privilèges des rôles.

Tout privilège

Tous les objets spécifiés

Vous devez disposer d’au moins un privilège sur les objets spécifiés dans la commande REVOKE. Par exemple, la révocation d’une autorisation de l’appelant sur une table exige que vous disposiez d’au moins un privilège sur cette table.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Exemples

Les exécutables appartenant à owner_role ne peuvent plus s’exécuter avec les privilèges de l’appelant lorsqu’ils accèdent aux vues du compte courant.

REVOKE ALL INHERITED CALLER PRIVILEGES ON ALL VIEWS IN ACCOUNT FROM ROLE owner_role;
Copy

Les exécutables appartenant à owner_role ne peuvent plus s’exécuter avec le privilège USAGE lorsqu’ils accèdent au schéma db.sch1.

REVOKE CALLER USAGE ON SCHEMA db.sch1 FROM ROLE owner_role;
Copy