REVOKE <privilèges> FROM APPLICATION ROLE¶
Révoque pour un rôle d’application un ou plusieurs privilèges d’accès à un objet sécurisé au niveau du schéma. Les privilèges qui peuvent être révoqués sont spécifiques à chaque objet.
Pour plus de détails sur les rôles et les objets sécurisables, voir Aperçu du contrôle d’accès.
- Variations :
Syntaxe¶
Rôles de comptes :
REVOKE [ GRANT OPTION FOR ]
{
| { schemaPrivileges | ALL [ PRIVILEGES ] } ON { SCHEMA <schema_name> | ALL SCHEMAS IN DATABASE <db_name> }
| { schemaPrivileges | ALL [ PRIVILEGES ] } ON { FUTURE SCHEMAS IN DATABASE <db_name> }
| { schemaObjectPrivileges | ALL [ PRIVILEGES ] } ON { <object_type> <object_name> | ALL <object_type_plural> IN SCHEMA <schema_name> }
| { schemaObjectPrivileges | ALL [ PRIVILEGES ] } ON FUTURE <object_type_plural> IN { DATABASE <db_name> | SCHEMA <schema_name> }
}
FROM APPLICATION ROLE <name> [ RESTRICT | CASCADE ]
Où :
schemaObjectPrivileges ::=
-- For ALERT
{ MONITOR | OPERATE } [ , ... ]
-- For DYNAMIC TABLE
OPERATE, SELECT [ , ...]
-- For EVENT TABLE
{ INSERT | SELECT } [ , ... ]
-- For FILE FORMAT, FUNCTION (UDF or external function), PROCEDURE, SECRET, or SEQUENCE
USAGE [ , ... ]
-- For PIPE
{ APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
-- For { MASKING | PACKAGES | PASSWORD | ROW ACCESS | SESSION } POLICY or TAG
APPLY [ , ... ]
-- For SECRET
READ, USAGE [ , ... ]
-- For external STAGE
USAGE [ , ... ]
-- For internal STAGE
READ [ , WRITE ] [ , ... ]
-- For STREAM
SELECT [ , ... ]
-- For TABLE
{ APPLYBUDGET | DELETE | EVOLVE SCHEMA | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For TAG
READ
-- For TASK
{ APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
-- For VIEW
{ REFERENCES | SELECT } [ , ... ]
-- For MATERIALIZED VIEW
{ APPLYBUDGET | REFERENCES | SELECT } [ , ... ]
Pour plus de détails sur les privilèges pris en charge pour chaque type d’objet, voir Privilèges de contrôle d’accès.
Paramètres requis¶
object_name
Indique l’identificateur de l’objet sur lequel les privilèges sont accordés.
object_type
Spécifie le type d’objet pour les objets au niveau du schéma.
ALERT
DYNAMIC TABLE
EVENT TABLE
EXTERNAL TABLE
FILE FORMAT
FUNCTION
MASKING POLICY
MATERIALIZED VIEW
NETWORK RULE
PACKAGES POLICY
PASSWORD POLICY
PIPE
PROCEDURE
ROW ACCESS POLICY
SECRET
SESSION POLICY
SEQUENCE
STAGE
STREAM
TABLE
TAG
TASK
VIEW
object_type_plural
Forme plurielle de
object_type
(par exemple,TABLES
,VIEWS
).Notez que les autorisations globales sur les canaux ne sont pas autorisées.
name
Spécifie l’identificateur du rôle d’application destinataire (c’est-à-dire le rôle auquel les privilèges sont accordés).
Paramètres facultatifs¶
FUTURE
Si spécifié, supprime uniquement les privilèges accordés sur les nouveaux objets de schéma (futurs) d’un type spécifié (par exemple, tables ou vues) plutôt que sur les objets existants. Notez que tous les privilèges accordés sur les objets existants sont conservés.
RESTRICT | CASCADE
Si spécifié, détermine si l’opération de révocation réussit ou échoue pour les privilèges, en fonction du fait que les privilèges ont été réattribués à un autre rôle d’application.
RESTRICT
Si le privilège révoqué a été réattribué à un autre rôle d’application, la commande REVOKE échoue.
CASCADE
Si le privilège révoqué a été réattribué, la commande REVOKE révoque récursivement ces autorisations dépendantes. Si le même privilège sur un objet a été accordé au rôle cible par un autre concédant (accord parallèle), cette autorisation ne sera pas affectée et le rôle cible conservera le privilège.
Par défaut :
RESTRICT
Exigences en matière de sécurité¶
- Révoquer des privilèges sur des objets individuels:
Vous pouvez utiliser un rôle actif qui répond à l’un des critères suivants, ou un rôle supérieur, pour révoquer les privilèges d’autres rôles sur un objet :
Le rôle est identifié comme le donneur du privilège dans la colonne GRANTED_BY de la sortie SHOW GRANTS.
Si vous avez plusieurs instances d’un privilège accordées sur l’objet spécifié, seules les instances accordées par le rôle du concédant actif de privilèges sont révoquées.
Le rôle possède le privilège global MANAGE GRANTS.
Si vous avez plusieurs instances d’un privilège accordées sur l’objet spécifié, toutes les instances sont révoquées.
Notez que seuls les rôles système SECURITYADMIN et supérieurs disposent du privilège MANAGE GRANTS par défaut ; toutefois, ce privilège peut être accordé aux rôles personnalisés.
Les rôles suivants peuvent révoquer les privilèges des objets d’un schéma d’accès géré (c’est-à-dire les schémas créés à l’aide de la syntaxe CREATE SCHEMA… WITH MANAGED ACCESS) :
Le rôle d’application, car ce rôle est le propriétaire du schéma (c’est-à-dire qu’il a le privilège OWNERSHIP sur le schéma).
Un rôle avec le privilège global MANAGE GRANTS.
- Révocation des autorisations sur les futurs objets d’un type spécifié:
Dans les schémas d’accès gérés, le rôle d’application ou un rôle disposant du privilège global MANAGE GRANTS peut révoquer les privilèges sur les objets futurs du schéma.
Dans les schémas standards, le privilège global MANAGE GRANTS est requis pour révoquer des privilèges sur des objets futurs au sein du schéma.
Notes sur l’utilisation¶
Un privilège peut être accordé à un rôle d’application plusieurs fois par différents concédants. Un instruction de <privilège> REVOKE ne révoque que les autorisations pour lesquelles le rôle actif, ou un rôle inférieur dans une hiérarchie, est le concédant. Toute attribution supplémentaire d’un privilège spécifié par d’autres concédants est ignoré.
Une instruction REVOKE <privilège> est réussie même si aucun privilège n’est révoqué. Une instruction de <privilège> REVOKE renvoie une erreur uniquement si un privilège spécifié possède des autorisations dépendantes et si la clause CASCADE est omise dans l’instruction.
Lorsque vous révoquez des privilèges sur une UDF individuelle, vous devez spécifier les types de données pour les arguments, le cas échéant, pour l’UDF sous la forme
udf_name ( [ arg_data_type , ... ] )
. Ceci est nécessaire parce que Snowflake utilise des types de données d’argument pour résoudre les UDFs qui ont le même nom dans un schéma. Pour plus de détails, reportez-vous à Vue d’ensemble des fonctions définies par l’utilisateur.Lorsque vous révoquez des privilèges à une procédure stockée particulière, vous devez spécifier les types de données pour les arguments, le cas échéant, pour la procédure sous la forme
procedure_name ( [ arg_data_type , ... ] )
. Ceci est nécessaire parce que Snowflake utilise des types de données d’argument pour résoudre les procédures stockées qui ont le même nom dans un schéma.Autorisations futures : la révocation des autorisations futures ne supprime que les autorisations de privilèges pour des objets futurs d’un type spécifié. Les privilèges accordés sur les objets existants sont conservés.
Pour plus d’informations, voir les schémas d’accès gérés.
Exemple¶
Révoquer le privilège SELECT sur une vue à partir d’un rôle d’application :
REVOKE SELECT ON VIEW data.views.credit_usage
FROM APPLICATION ROLE app_snowflake_credits;