Rôles personnalisés et rôles secondaires

Gestion, gouvernance et collaboration sur Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Problème des scénarios de rôles plats

Liste d’analystes pointant vers différents privilèges.

Gestion, gouvernance et collaboration sur Snowflake

Rôles d’accès vs rôles fonctionnels

Comparatif entre rôles d’accès et rôles fonctionnels en termes d’héritage

  • Les rôles d’accès portent des privilèges précis sur des objets précis
  • Les rôles fonctionnels sont au‑dessus et héritent des rôles d’accès
1 [Snowflake: Aligning Object Access with Business Functions](https://docs.snowflake.com/en/user-guide/security-access-control-considerations#aligning-object-access-with-business-functions)
Gestion, gouvernance et collaboration sur Snowflake

Fonctionnement

Fonctionnement en pratique

  • Les rôles d’accès portent des privilèges précis
  • Les rôles fonctionnels héritent d’un ou plusieurs rôles d’accès
  • Les utilisateurs reçoivent des rôles fonctionnels
Gestion, gouvernance et collaboration sur Snowflake

Construire la hiérarchie en SQL

Étape 1 : Créer un rôle d’accès et lui accorder des privilèges sur les objets

CREATE ROLE credit_read;
GRANT USAGE ON DATABASE claro_db 
TO ROLE credit_read;
GRANT USAGE ON SCHEMA claro_db.core 
TO ROLE credit_read;
GRANT SELECT ON TABLE core.credit_scores
  TO ROLE credit_read;

Étape 2 : Créer un rôle fonctionnel et hériter du rôle d’accès

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Étape 3 : Attribuer le rôle fonctionnel à un utilisateur

GRANT ROLE analyst TO USER ana;
Gestion, gouvernance et collaboration sur Snowflake

Rôles de compte vs rôles de base

Rôles de compte Rôles de base de données
Portée Couvrent toute base ou tout schéma Limités à une seule base
Attribués aux utilisateurs ? Oui Non – accordés à un rôle de compte
SQL CREATE ROLE CREATE DATABASE ROLE
Cas d’usage Représenter des fonctions métier dans le compte Regrouper les accès aux objets d’une seule base
Gestion, gouvernance et collaboration sur Snowflake

Rôles secondaires

  • Chaque session a un rôle principal avec USE ROLE <Role Name>
  • Par défaut, les rôles secondaires = ALL : tous vos rôles attribués sont actifs
  • Utilisez USE SECONDARY ROLES <role_name> pour activer un sous-ensemble

  • USE SECONDARY ROLES NONE pour restreindre au seul rôle principal

Gérer les rôles secondaires dans une session

USE SECONDARY ROLES ALL;
USE SECONDARY ROLES <role_name>;
USE SECONDARY ROLES NONE;
1 [Snowflake BCR-1692: Secondary Roles Default Change](https://docs.snowflake.com/en/release-notes/bcr-bundles/2024_08/bcr-1692)
Gestion, gouvernance et collaboration sur Snowflake

Future grants

Accorder automatiquement SELECT sur toute nouvelle table ajoutée à ce schéma

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Gestion, gouvernance et collaboration sur Snowflake

Passons à la pratique !

Gestion, gouvernance et collaboration sur Snowflake

Preparing Video For Download...