REVOKE <privilèges> … FROM USER¶
Retire à un utilisateur un ou plusieurs privilèges sur un objet sécurisable. Les privilèges qui peuvent être révoqués sont spécifiques à chaque objet.
Voir aussi :
Syntaxe¶
REVOKE [ GRANT OPTION FOR ]
{
{ globalPrivileges | ALL [ PRIVILEGES ] } ON ACCOUNT
| { accountObjectPrivileges | ALL [ PRIVILEGES ] } ON { RESOURCE MONITOR | WAREHOUSE | COMPUTE POOL | DATABASE | INTEGRATION | CONNECTION | FAILOVER GROUP | REPLICATION GROUP | EXTERNAL VOLUME } <object_name>
| { schemaPrivileges | ALL [ PRIVILEGES ] } ON { SCHEMA <schema_name> | ALL SCHEMAS IN DATABASE <db_name> }
| { schemaObjectPrivileges | ALL [ PRIVILEGES ] } ON { <object_type> <object_name> | ALL <object_type_plural> IN SCHEMA <schema_name> }
}
FROM [ USER ] <user_name> [ RESTRICT | CASCADE ]
Où :
globalPrivileges ::=
{
| ATTACH POLICY | AUDIT | BIND SERVICE ENDPOINT
| APPLY {
{ AGGREGATION | AUTHENTICATION | JOIN | MASKING | PACKAGES | PASSWORD
| PROJECTION | ROW ACCESS | SESSION } POLICY
| TAG }
| EXECUTE { ALERT | DATA METRIC FUNCTION | MANAGED ALERT | MANAGED TASK | TASK }
| IMPORT SHARE
| MANAGE { ACCOUNT SUPPORT CASES | EVENT SHARING | GRANTS | LISTING AUTO FULFILLMENT | ORGANIZATION SUPPORT CASES | USER SUPPORT CASES | WAREHOUSES }
| MODIFY { LOG LEVEL | TRACE LEVEL | SESSION LOG LEVEL | SESSION TRACE LEVEL }
| MONITOR { EXECUTION | SECURITY | USAGE }
| OVERRIDE SHARE RESTRICTIONS | PURCHASE DATA EXCHANGE LISTING | RESOLVE ALL
| READ SESSION
}
[ , ... ]
accountObjectPrivileges ::=
-- For COMPUTE POOL
{ MODIFY | MONITOR | OPERATE | USAGE } [ , ... ]
-- For CONNECTION
{ FAILOVER } [ , ... ]
-- For DATABASE
{ APPLYBUDGET
| IMPORTED PRIVILEGES | MODIFY | MONITOR | USAGE } [ , ... ]
-- For EXTERNAL VOLUME
{ USAGE } [ , ... ]
-- For FAILOVER GROUP
{ FAILOVER | MODIFY | MONITOR | REPLICATE } [ , ... ]
-- For INTEGRATION
{ USAGE | USE_ANY_ROLE } [ , ... ]
-- For REPLICATION GROUP
{ MODIFY | MONITOR | REPLICATE } [ , ... ]
-- For RESOURCE MONITOR
{ MODIFY | MONITOR } [ , ... ]
-- For USER
{ MONITOR } [ , ... ]
-- For WAREHOUSE
{ APPLYBUDGET | MODIFY | MONITOR | USAGE | OPERATE } [ , ... ]
schemaPrivileges ::=
ADD SEARCH OPTIMIZATION | APPLYBUDGET
| MODIFY | MONITOR | USAGE
[ , ... ]
schemaObjectPrivileges ::=
-- For ALERT
{ MONITOR | OPERATE } [ , ... ]
-- For DATA METRIC FUNCTION
USAGE [ , ... ]
-- For DYNAMIC TABLE
MONITOR, OPERATE, SELECT [ , ...]
-- For EVENT TABLE
{ APPLYBUDGET | DELETE | REFERENCES | SELECT | TRUNCATE } [ , ... ]
-- For FILE FORMAT, FUNCTION (UDF or external function), MODEL, PROCEDURE, SECRET, SEQUENCE, or SNAPSHOT
USAGE [ , ... ]
-- For GIT REPOSITORY
{ READ, WRITE } [ , ... ]
-- For HYBRID TABLE
{ APPLYBUDGET | DELETE | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For IMAGE REPOSITORY
{ READ, WRITE } [ , ... ]
-- For ICEBERG TABLE
{ APPLYBUDGET | DELETE | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For MATERIALIZED VIEW
{ APPLYBUDGET | REFERENCES | SELECT } [ , ... ]
-- For PIPE
{ APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
-- For { AGGREGATION | AUTHENTICATION | MASKING | JOIN | PACKAGES | PASSWORD | PRIVACY | PROJECTION | ROW ACCESS | SESSION } POLICY or TAG
APPLY [ , ... ]
-- For SECRET
{ READ | USAGE } [ , ... ]
-- For SEMANTIC VIEW
REFERENCES [ , ... ]
-- For SERVICE
{ MONITOR | OPERATE } [ , ... ]
-- For external STAGE
USAGE [ , ... ]
-- For internal STAGE
READ [ , WRITE ] [ , ... ]
-- For STREAM
SELECT [ , ... ]
-- For STREAMLIT
USAGE [ , ... ]
-- For TABLE
{ APPLYBUDGET | DELETE | EVOLVE SCHEMA | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For TAG
READ
-- For TASK
{ APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
-- For VIEW
{ REFERENCES | SELECT } [ , ... ]
Pour plus d’informations 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 révoqués.
object_type
Spécifie le type d’objet pour les objets au niveau du schéma.
AGGREGATION POLICY
ALERT
AUTHENTICATION POLICY
CORTEX SEARCH SERVICE
DATA METRIC FUNCTION
DATASET
DYNAMIC TABLE
EVENT TABLE
EXTERNAL TABLE
FILE FORMAT
FUNCTION
GIT REPOSITORY
IMAGE REPOSITORY
ICEBERG TABLE
JOIN POLICY
MASKING POLICY
MATERIALIZED VIEW
MODEL
MODEL MONITOR
NETWORK RULE
NOTEBOOK
PACKAGES POLICY
PASSWORD POLICY
PIPE
PRIVACY POLICY
PROCEDURE
PROJECTION POLICY
ROW ACCESS POLICY
SECRET
SEMANTIC VIEW
SERVICE
SESSION POLICY
SEQUENCE
SNAPSHOT
STAGE
STREAM
STREAMLIT
TABLE
TAG
TASK
VIEW
object_type_plural
Forme plurielle de
object_type
(par exemple,TABLES
,VIEWS
).user_name
Spécifie l’identificateur de l’utilisateur destinataire (l’utilisateur dont les privilèges sont révoqués).
Paramètres facultatifs¶
GRANT OPTION FOR
Si ce paramètre est spécifié, supprime la possibilité pour l’utilisateur destinataire d’accorder des privilèges à un autre rôle ou utilisateur.
Par défaut : aucune valeur
RESTRICT | CASCADE
Si ce paramètre est spécifié, détermine si l’opération de révocation réussit ou échoue pour les privilèges, selon que les privilèges ont été ou non réattribués à un autre rôle ou utilisateur.
RESTRICT
: si le privilège révoqué a été réattribué à un autre rôle ou utilisateur, 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é à l’utilisateur cible par un autre concédant (octroi parallèle), cet octroi n’est pas affecté et l’utilisateur cible conserve le privilège.
Par défaut :
RESTRICT
Notes sur l’utilisation¶
Les privilèges ne peuvent pas être accordées ou révoquées directement dans une classe.
Un privilège peut être accordé à un utilisateur plusieurs fois par différents concédants. Une instruction
REVOKE privilege
ne révoque que les octrois dont l’utilisateur est le concédant. Toute attribution supplémentaire d’un privilège spécifié par d’autres concédants est ignoré.Notez également qu’une instruction
REVOKE privilege
réussit, même si aucun privilège n’est révoqué.REVOKE privilege
ne renvoie une erreur que si un privilège spécifié dispose d’octrois dépendants et si la clause CASCADE est omise dans l’instruction.Plusieurs privilèges peuvent être spécifiés pour le même type d’objet dans une seule instruction GRANT (chaque privilège étant séparé par des virgules), ou le mot clé spécial
ALL [ PRIVILEGES ]
peut être utilisé pour accorder tous les privilèges applicables au type d’objet spécifié. Notez toutefois que seuls les privilèges détenus et pouvant être accordés par le rôle ou l’utilisateur exécutant la commande GRANT sont effectivement accordés à l’utilisateur cible. Un message d’avertissement est renvoyé pour tout privilège qui n’a pas pu être accordé.Vous ne pouvez pas spécifier le mot-clé
ALL [ PRIVILEGES ]
pour les balises.
Pour les zones de préparation :
USAGE ne s’applique qu’aux zones de préparation externes.
READ | WRITE ne s’appliquent qu’aux zones de préparation internes. De plus, pour accorder le privilège WRITE sur une zone de préparation interne, le privilège READ doit d’abord être accordé sur la zone de préparation.
Pour plus d’informations sur les zones de préparation externes et internes, consultez CREATE STAGE.
Pour les intégrations de stockage :
Pour exécuter les commandes suivantes à l’aide d’une zone de préparation externe s’appuyant sur une intégration de stockage, le privilège USAGE sur l’intégration de stockage doit être directement accordé à l’utilisateur ou utiliser un rôle qui possède ce privilège ou en hérite.
Si vous révoquez le privilège USAGE de l’utilisateur, celui-ci ne peut pas exécuter ces commandes. Pour plus d’informations, voir Privilèges de zone de préparation.
Révoquer le privilège USAGE sur une intégration de stockage n’empêche pas un utilisateur d’interroger les tables externes associées à l’intégration de stockage. L’interrogation d’une table externe ne requiert pas le privilège USAGE sur son intégration de stockage sous-jacente.
Exigences en matière de contrôle d’accès¶
- Révoquer des privilèges sur des objets individuels:
Un rôle actif ou un utilisateur remplissant l’un des critères suivants, ou encore un rôle supérieur, peut être utilisé pour révoquer les privilèges sur un objet des utilisateurs :
Le rôle ou l’utilisateur est identifié comme le concédant du privilège dans la colonne GRANTED_BY de la sortie SHOW GRANTS.
Si plusieurs instances d’un privilège ont été accordées sur l’objet spécifié, seules les instances accordées par le rôle de donneur actif sont révoquées.
Le rôle ou l’utilisateur dispose du privilège MANAGE GRANTS global.
Si plusieurs instances d’un privilège ont été 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.
Dans les schémas d’accès gérés (schémas créés à l’aide de la syntaxe
CREATE SCHEMA ... WITH MANAGED ACCESS
), seul le propriétaire du schéma (le rôle disposant du privilège OWNERSHIP sur le schéma), un rôle ou un utilisateur disposant du privilège MANAGE GRANTS global ou un rôle supérieur peut révoquer les privilèges sur les objets du schéma.
Exemples¶
Pour révoquer le privilège USAGE d’un utilisateur spécifique sur une application Streamlit, joe
:
REVOKE USAGE ON STREAMLIT streamlit_db.streamlit_schema.streamlit_app FROM USER joe;
Pour révoquer le privilège USAGE d’un utilisateur spécifique sur une procédure, user1
:
REVOKE USAGE ON PROCEDURE mydb.myschema.myprocedure(number) FROM USER user1;