Privilèges de contrôle d’accès¶
Ce chapitre décrit les privilèges disponibles dans le modèle de contrôle d’accès Snowflake. Les privilèges sont accordés aux rôles, et les rôles sont accordés aux utilisateurs pour spécifier les opérations que les utilisateurs peuvent effectuer sur les objets du système.
Dans ce chapitre :
Tous les privilèges (par ordre alphabétique)¶
Les privilèges suivants sont disponibles dans le modèle de contrôle d’accès Snowflake. La signification de chaque privilège varie selon le type d’objet auquel il s’applique, et tous les objets ne prennent pas en charge tous les privilèges :
Privilège |
Type d’objet |
Description |
---|---|---|
ALL [ PRIVILEGES ] |
Tout |
Accorde tous les privilèges pour le type d’objet spécifié. |
APPLY MASKING POLICY |
Global |
Permet de définir une politique de masquage de sécurité au niveau de la colonne sur une table ou une colonne de vue. |
CREATE <type_objet> |
Global, base de données, schéma |
Donne la possibilité de créer un objet de <type_objet> (par exemple, CREATE TABLE donne la possibilité de créer une table dans un schéma). |
CREATE ACCOUNT |
Global |
Permet de créer des comptes gérés. Ne s’applique actuellement qu’aux fournisseurs de données qui créent des comptes de lecteur pour partager des données avec les consommateurs. |
CREATE SHARE |
Global |
Permet de créer des actions. S’applique aux fournisseurs de données pour le partage des données avec d’autres comptes. |
DELETE |
Table |
Donne la capacité d’exécuter une commande DELETE sur la table. |
EXECUTE TASK |
Global |
Accorde la capacité d’exécuter toutes les tâches appartenant au rôle. |
IMPORT SHARE |
Global |
Permet de visualiser les actions partagées avec votre compte et de créer des bases de données à partir des actions. S’applique aux consommateurs de données. |
OVERRIDE SHARE RESTRICTIONS |
Global |
Permet de définir la valeur du paramètre SHARE_RESTRICTIONS qui permet à un compte de fournisseur Business Critical d’ajouter un compte de consommateur (avec une édition non Business Critical) à un partage. Pour plus de détails, voir Activation du partage depuis un compte Business Critical vers un compte non Business Critical. |
IMPORTED PRIVILEGES |
Base de données, Data Exchange |
Permet d’autoriser l’accès à une base de données partagée à des rôles autres que le rôle de propriétaire ou de gérer un Snowflake Data Marketplace / Data Exchange. |
INSERT |
Table |
Donne la capacité d’exécuter une commande INSERT sur la table. |
MANAGE GRANTS |
Global |
Permet d’accorder ou de révoquer des privilèges sur n’importe quel objet comme si le rôle d’appel était le propriétaire de l’objet. |
MODIFY |
Moniteur de ressources , Entrepôt , Liste Data Exchange , Base de données , Schéma |
Permet de modifier les paramètres ou les propriétés d’un objet (par exemple, sur un entrepôt virtuel, permet de modifier la taille d’un entrepôt virtuel). |
MONITOR |
Moniteur de ressources, entrepôt, base de données, schéma, tâche |
Permet de voir les détails d’un objet (par exemple, les requêtes et l’utilisation dans un entrepôt). |
MONITOR EXECUTION |
Global |
Accorde la capacité de surveiller les exécutions de toutes les tâches du compte. |
MONITOR USAGE |
Global |
Permet de surveiller l’utilisation au niveau du compte et les informations historiques des bases de données et entrepôts. Pour plus de détails, voir Permettre aux administrateurs sans compte de surveiller l’historique d’utilisation et de facturation. De plus, il est possible d’afficher les comptes gérés à l’aide de SHOW MANAGED ACCOUNTS. |
OPERATE |
Entrepôt, tâche |
Permet de démarrer, d’arrêter, de suspendre ou de reprendre un entrepôt virtuel. Accorde la possibilité de suspendre ou de reprendre une tâche. |
OWNERSHIP |
Tout |
Permet de supprimer, de modifier, d’accorder ou de révoquer l’accès à un objet. Requis pour renommer un objet. OWNERSHIP est un privilège spécial sur un objet qui est automatiquement accordé au rôle qui a créé l’objet, mais qui peut aussi être transféré à l’aide de la commande GRANT OWNERSHIP à un rôle différent par le rôle propriétaire (ou par tout rôle avec le privilège MANAGE GRANTS). |
REFERENCES |
Table |
Permet de référencer une table en tant que table de clé unique/primaire pour une contrainte de clé étrangère. |
SELECT |
Table, table externe, vue, flux |
Donne la possibilité d’exécuter une instruction SELECT sur la table/vue. |
TRUNCATE |
Table |
Donne la capacité d’exécuter une commande TRUNCATE TABLE sur la table. |
UPDATE |
Table |
Donne la capacité d’exécuter une commande UPDATE sur la table. |
USAGE |
Entrepôt , Liste Data Exchange , Base de données , Schéma |
Donne la capacité d’exécuter une commande USE <objet> sur l’objet. Donne également la capacité d’exécuter une commande SHOW <objets> sur les objets dans une base de données ou un schéma. Cependant, un objet contenu n’est répertorié dans la sortie que si le rôle d’exécution possède également au moins un privilège sur l’objet. |
Les autres sections de ce chapitre décrivent les privilèges spécifiques disponibles pour chaque type d’objet et leur utilisation.
Privilèges globaux¶
Privilège |
Utilisation |
Remarques |
---|---|---|
APPLY MASKING POLICY |
Global |
Permet de définir une politique de masquage de sécurité au niveau de la colonne sur une table ou une colonne de vue. |
CREATE USER |
Permet de créer un nouvel utilisateur. |
|
CREATE ROLE |
Permet de créer un nouveau rôle. |
|
MANAGE GRANTS |
Permet de modifier les attributions sur les objets dont le rôle n’est pas le propriétaire. |
|
CREATE WAREHOUSE |
Permet de créer un nouvel entrepôt virtuel. |
Doit être accordé par le rôle ACCOUNTADMIN. |
CREATE DATA EXCHANGE LISTING |
Permet de créer une nouvelle liste Data Exchange. |
Doit être accordé par le rôle ACCOUNTADMIN. |
CREATE DATABASE |
Permet de créer une nouvelle base de données ou de créer un clone d’une base de données existante. |
Doit être accordé par le rôle ACCOUNTADMIN. |
CREATE INTEGRATION |
Permet de créer une intégration de notification, de sécurité ou de stockage. |
Doit être accordé par le rôle ACCOUNTADMIN. |
EXECUTE TASK |
Accorde la capacité d’exécuter toutes les tâches appartenant au rôle. |
Doit être accordé par le rôle ACCOUNTADMIN. |
MONITOR EXECUTION |
Accorde la capacité de surveiller les exécutions de toutes les tâches du compte. |
Doit être accordé par le rôle ACCOUNTADMIN. |
CREATE SHARE |
Permet à un fournisseur de données de créer un partage. Pour plus de détails, voir Capacité des rôles non ACCOUNTADMIN à effectuer des tâches de partage de données. |
Doit être accordé par le rôle ACCOUNTADMIN. |
IMPORT SHARE |
Permet à un consommateur de données de visualiser les partages partagés avec son compte, et de créer des bases de données à partir de ces partages. Pour plus de détails, voir Capacité des rôles non ACCOUNTADMIN à effectuer des tâches de partage de données. |
Doit être accordé par le rôle ACCOUNTADMIN. |
OVERRIDE SHARE RESTRICTIONS |
Permet de définir la valeur du paramètre SHARE_RESTRICTIONS qui permet à un compte de fournisseur Business Critical d’ajouter un compte de consommateur (avec une édition non Business Critical) à un partage. |
Pour plus de détails, voir Activation du partage depuis un compte Business Critical vers un compte non Business Critical. |
CREATE ACCOUNT |
Permet à un fournisseur de données de créer un nouveau compte géré (c’est-à-dire un compte de lecteur). Pour plus de détails, voir Gestion des comptes de lecteur. |
Doit être accordé par le rôle ACCOUNTADMIN. |
MONITOR USAGE |
Permet de surveiller l’utilisation au niveau du compte et les informations historiques des bases de données et entrepôts. Pour plus de détails, voir Permettre aux administrateurs sans compte de surveiller l’historique d’utilisation et de facturation. De plus, il est possible d’afficher les comptes gérés à l’aide de SHOW MANAGED ACCOUNTS. |
Doit être accordé par le rôle ACCOUNTADMIN. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges globaux. |
Privilèges d’utilisateur et de rôle¶
Privilège |
Utilisation |
---|---|
OWNERSHIP |
Donne le contrôle total sur un utilisateur/rôle. |
MONITOR |
Utilisateur uniquement. Permet d’afficher l’historique de connexion de l’utilisateur. |
Privilèges du moniteur de ressources¶
Privilège |
Utilisation |
---|---|
MODIFY |
Permet de modifier toutes les propriétés d’un moniteur de ressources, par exemple de modifier le quota de crédit mensuel. |
MONITOR |
Permet d’afficher un moniteur de ressources. |
Privilèges de l’entrepôt virtuel¶
Privilège |
Utilisation |
---|---|
MODIFY |
Permet de modifier toutes les propriétés d’un entrepôt, y compris sa taille. |
MONITOR |
Permet de visualiser les requêtes actuelles et passées exécutées sur un entrepôt ainsi que les statistiques d’utilisation sur cet entrepôt. |
OPERATE |
Permet de modifier l’état d’un entrepôt (arrêt, démarrage, suspension, reprise) ainsi que d’interrompre toute requête en cours d’exécution. |
USAGE |
Permet d’utiliser un entrepôt virtuel et, par conséquent, d’exécuter des requêtes sur l’entrepôt. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur l’entrepôt. |
OWNERSHIP |
Transfère la propriété d’un entrepôt, ce qui donne un contrôle total sur l’entrepôt. |
Privilèges d’intégration¶
Privilège |
Utilisation |
---|---|
USAGE |
Permet de référencer l’intégration de stockage lors de la création d’une zone de préparation (avec CREATE STAGE) ou de la modification d’une zone de préparation (avec ALTER STAGE). |
USE_ANY_ROLE |
Permet au client ou à l’utilisateur externe OAuth de changer de rôle uniquement si ce privilège est accordé au client ou à l’utilisateur. Configurez l’intégration de sécurité externe OAuth pour utiliser le paramètre |
Privilèges Data Exchange¶
Privilège |
Utilisation |
---|---|
IMPORTED PRIVILEGES |
Permet à des rôles autres que le propriétaire de gérer un Snowflake Data Marketplace ou Data Exchange. |
Privilèges de liste Data Exchange¶
Note
Actuellement, les privilèges sur les listes Data Exchange ne peuvent être accordés que dans l’interface Web Snowflake. Pour obtenir des instructions, voir Attribution de privilèges à d’autres rôles.
Privilège |
Utilisation |
---|---|
MODIFY |
Permet à des rôles autres que celui de propriétaire de modifier une liste Snowflake Data Marketplace ou Data Exchange. |
USAGE |
Permet de visualiser une liste Snowflake Data Marketplace ou Data Exchange. |
OWNERSHIP |
Transfère la propriété d’un Snowflake Data Marketplace ou Data Exchange de Snowflake, ce qui confère le contrôle total de la liste. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur une liste Snowflake Data Marketplace ou Data Exchange. |
Privilèges de base de données¶
Privilège |
Utilisation |
---|---|
MODIFY |
Permet de modifier tous les paramètres d’une base de données. |
MONITOR |
Permet d’exécuter la commande DESCRIBE sur la base de données. |
USAGE |
Permet d’utiliser une base de données. Des privilèges supplémentaires sont requis pour afficher ou exécuter des actions sur des objets dans une base de données. |
CREATE SCHEMA |
Permet de créer un nouveau schéma dans une base de données, y compris de cloner un schéma. |
IMPORTED PRIVILEGES |
Permet à des rôles autres que le rôle propriétaire d’accéder à une base de données partagée. S’applique uniquement aux bases de données partagées. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur une base de données. |
OWNERSHIP |
Transfère la propriété d’une base de données, ce qui permet un contrôle total sur la base de données. |
Notez que la modification des propriétés d’une base de données, y compris des commentaires, nécessite le privilège OWNERSHIP pour la base de données.
Privilèges de schéma¶
Privilège |
Utilisation |
---|---|
MODIFY |
Permet de modifier les paramètres d’un schéma. |
MONITOR |
Permet d’exécuter la commande DESCRIBE sur le schéma. |
USAGE |
Permet d’utiliser un schéma, notamment en exécutant des commandes SHOW SCHEMAS pour répertorier les détails du schéma dans une base de données. |
Pour exécuter des commandes SHOW <objets> sur des objets (tables, vues, étapes, formats de fichier, séquences, canaux ou fonctions) dans le schéma, un rôle doit disposer d’au moins un privilège accordé à l’objet. |
|
CREATE TABLE |
Permet de créer une nouvelle table dans un schéma, y compris de cloner une table. Notez que ce privilège n’est pas nécessaire pour créer des tables temporaires, qui sont ramenées à la session utilisateur en cours et sont automatiquement supprimées à la fin de la session. |
CREATE EXTERNAL TABLE |
Permet de créer une nouvelle table externe dans un schéma. |
CREATE VIEW |
Permet de créer une nouvelle vue dans un schéma. |
CREATE MATERIALIZED VIEW |
Permet de créer une nouvelle vue matérialisée dans un schéma. |
CREATE MASKING POLICY |
Permet de créer une nouvelle politique de masquage Sécurité au niveau des colonnes dans un schéma. |
CREATE STAGE |
Permet de créer une nouvelle zone de préparation dans un schéma, y compris de cloner une zone de préparation. |
CREATE FILE FORMAT |
Permet de créer un nouveau format de fichier dans un schéma, y compris de cloner un format de fichier. |
CREATE SEQUENCE |
Permet de créer une nouvelle séquence dans un schéma, y compris de cloner une séquence. |
CREATE FUNCTION |
Permet de créer une nouvelle fonction UDF ou externe dans un schéma. |
CREATE PIPE |
Permet de créer un nouveau canal dans un schéma. |
CREATE STREAM |
Permet de créer un nouveau flux dans un schéma, y compris de cloner un flux. |
CREATE TASK |
Permet de créer une nouvelle tâche dans un schéma, y compris de cloner une tâche. |
CREATE PROCEDURE |
Permet de créer une nouvelle procédure stockée dans un schéma. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur un schéma. |
OWNERSHIP |
Transfère la propriété d’un schéma, ce qui confère un contrôle total. |
Note
Changer les propriétés d’un schéma, y compris les commentaires, nécessite le privilège OWNERSHIP pour la base de données.
L’utilisation d’un schéma nécessite également le privilège USAGE sur la base de données parent.
Privilèges de table¶
Privilège |
Utilisation |
---|---|
SELECT |
Permet d’exécuter une instruction SELECT sur une table. |
INSERT |
Permet d’exécuter une commande INSERT sur une table. Permet également d’utiliser la commande ALTER TABLE avec une clause |
UPDATE |
Permet d’exécuter une commande UPDATE sur une table. |
TRUNCATE |
Permet d’exécuter une commande TRUNCATE TABLE sur une table. |
DELETE |
Permet d’exécuter une commande DELETE sur une table. |
REFERENCES |
Permet de référencer une table en tant que table de clé unique/primaire pour une contrainte de clé étrangère. Permet également de visualiser la structure d’une table (mais pas les données). |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur une table. |
OWNERSHIP |
Transfère la propriété d’une table, ce qui confère le contrôle total de la table. Nécessaire pour modifier la plupart des propriétés d’une table, à l’exception du regroupement. |
Note
Effectuer des opérations sur une table nécessite également le privilège USAGE sur la base de données et le schéma parent.
Privilèges de table externe¶
Privilège |
Utilisation |
---|---|
SELECT |
Permet d’exécuter une instruction SELECT sur une table externe. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, à l’exception de OWNERSHIP, sur une table externe. |
OWNERSHIP |
Transfère la propriété d’une vue, ce qui confère un contrôle total sur la table externe ; nécessaire pour actualiser une table externe. |
Note
Effectuer des opérations sur une table externe nécessite également le privilège USAGE sur la base de données et le schéma parent.
Affichage des privilèges¶
Les privilèges suivants s’appliquent aux vues standard et matérialisées.
Privilège |
Utilisation |
---|---|
SELECT |
Permet d’exécuter une instruction SELECT sur une vue. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur une vue. |
OWNERSHIP |
Transfère la propriété d’une vue, ce qui donne un contrôle total sur la vue. Requis pour modifier une vue. |
Note
Un utilisateur qui possède un privilège SELECT sur une vue n’a pas besoin de privilège SELECT sur les tables que la vue utilise. Cela signifie que vous pouvez utiliser une vue pour donner un accès de rôle à un sous-ensemble d’une table uniquement. Par exemple, vous pouvez créer une vue qui accède aux informations de facturation médicales, mais pas aux informations de diagnostic médical dans la même table. Vous pouvez alors accorder des privilèges sur cette vue à un rôle ACCOUNTANT personnalisé afin que les comptables puissent consulter les informations de facturation sans voir le diagnostic du patient.
L’utilisation d’une vue nécessite également le privilège USAGE sur la base de données et le schéma parent.
Privilèges de zone de préparation¶
Privilège |
Utilisation |
---|---|
USAGE |
Active l’utilisation d’un objet de zones de préparation externes dans une instruction SQL. Ne s’applique pas aux zones de préparation internes. |
READ |
Permet d’effectuer toute opération nécessitant une lecture à partir d’une zone de préparation interne (GET, LIST, COPY INTO <table>, etc.). Ne s’applique pas aux zones de préparation externes. |
WRITE |
Permet d’effectuer toute opération nécessitant une écriture vers une zone de préparation interne (PUT, REMOVE, COPY INTO <emplacement>, etc.). Ne s’applique pas aux zones de préparation externes. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges applicables, sauf OWNERSHIP, sur la zone de préparation (interne ou externe). |
OWNERSHIP |
Transfère la propriété d’une zone de préparation, ce qui confère le contrôle total de la zone de préparation. |
Note
Lors de l’octroi des privilèges READ et WRITE pour une zone de préparation interne, le privilège READ doit être accordé avant ou en même temps que le privilège WRITE.
Lors de la révocation des privilèges READ et WRITE pour une zone de préparation interne, le privilège WRITE doit être révoqué avant ou en même temps que le privilège READ.
Effectuer des opérations une zone de préparation nécessite également le privilège USAGE sur la base de données et le schéma parent.
Privilèges de format de fichier¶
Privilège |
Utilisation |
---|---|
USAGE |
Permet d’utiliser un format de fichier dans une instruction SQL. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur le format de fichier. |
OWNERSHIP |
Transfère la propriété d’un format de fichier, ce qui donne un contrôle total sur le format de fichier. Nécessaire pour modifier un format de fichier. |
Note
Effectuer des opérations sur des formats de fichier nécessite également le privilège USAGE sur la base de données et le schéma parent.
Privilèges de canal¶
Privilège |
Utilisation |
---|---|
OWNERSHIP |
Transfère la propriété d’un canal, ce qui donne un contrôle total sur le canal. Nécessaire pour le chargement des données à l’aide de Snowpipe. |
Note
Effectuer des opérations sur des canaux nécessite également le privilège USAGE sur la base de données et le schéma parent.
Privilèges de flux¶
Privilège |
Utilisation |
---|---|
SELECT |
Permet d’exécuter une instruction SELECT sur un flux. |
OWNERSHIP |
Transfère la propriété d’un flux, ce qui confère le contrôle total du flux. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur le flux. |
Privilèges de tâches¶
Privilège |
Utilisation |
---|---|
MONITOR |
Permet d’afficher les détails de la tâche (à l’aide de DESCRIBE TASK ou SHOW TASKS). |
OPERATE |
Permet d’afficher les détails de la tâche (à l’aide de SHOW TASKS) et de reprendre ou de suspendre la tâche. |
OWNERSHIP |
Transfère la propriété d’une tâche, ce qui confère le contrôle total de la tâche. |
Privilèges de politique de masquage¶
Privilège |
Utilisation |
---|---|
APPLY |
Permet d’appliquer la politique de masquage Sécurité au niveau des colonnes aux opérations non définies et définies. |
OWNERSHIP |
Transfère la propriété d’une politique de masquage Sécurité au niveau des colonnes, qui accorde un contrôle total sur la politique de masquage. Nécessaire pour modifier la plupart des propriétés d’une politique de masquage. |
Note
Effectuer des opérations sur une politique de masquage nécessite également le privilège USAGE sur la base de données et le schéma parents.
Privilèges de séquences¶
Privilège |
Utilisation |
---|---|
USAGE |
Permet d’utiliser une séquence dans une instruction SQL. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur la séquence. |
OWNERSHIP |
Transfère la propriété d’une séquence, ce qui confère un contrôle total sur la séquence ; nécessaire pour modifier la séquence. |
Note
Effectuer des opérations sur une séquence nécessite également le privilège USAGE sur la base de données et le schéma parent.
Privilèges des procédures stockées¶
Privilège |
Utilisation |
---|---|
USAGE |
Permet d’appeler une procédure stockée. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur la procédure stockée. |
OWNERSHIP |
Transfère la propriété d’une procédure stockée, ce qui confère un contrôle total sur la procédure stockée ; nécessaire pour modifier la procédure stockée. |
Note
Effectuer des opérations sur une procédure stockée nécessite également le privilège USAGE sur la base de données et le schéma parent.
Si une procédure stockée fonctionne avec les droits de l’appelant, l’utilisateur qui appelle la procédure stockée doit avoir des privilèges sur les objets de la base de données (par exemple, des tables) auxquels la procédure stockée accède. Pour plus de détails, voir Présentation des procédures stockées des droits de l’appelant et des droits du propriétaire.
Privilèges des fonctions définies par l’utilisateur (UDF) et des fonctions externes¶
Privilège |
Utilisation |
---|---|
USAGE |
Permet d’appeler une UDF ou une fonction externe. |
ALL [ PRIVILEGES ] |
Accorde tous les privilèges, sauf OWNERSHIP, sur l’UDF ou la fonction externe. |
OWNERSHIP |
Transfère la propriété d’une UDF ou d’une fonction externe, ce qui confère un contrôle total sur l’objet ; nécessaire pour modifier l’UDF ou la fonction externe. |
Note
Effectuer des opérations sur une UDF ou une fonction externe nécessite également le privilège USAGE sur la base de données et le schéma parent.
Le propriétaire d’une UDF doit avoir des privilèges sur les objets auxquels la fonction accède ; l’utilisateur qui appelle une UDF n’a pas besoin de ces privilèges. Pour plus de détails, voir Exigences en matière de sécurité et de privilège pour les UDFs.
Le propriétaire d’une fonction externe doit avoir le privilège USAGE sur l’objet d’intégration API associé à la fonction externe. Pour plus de détails, voir Contrôle d’accès dans la documentation sur les fonctions externes.