Aangepaste rollen en secundaire rollen

Snowflake-beheer, -governance en -samenwerking

Emily Melhuish

Technical Curriculum Developer, Snowflake

Het probleem met platte-rolscenario’s

Lijst van analisten die naar verschillende privileges wijzen.

Snowflake-beheer, -governance en -samenwerking

Access-rollen vs functionele rollen

Split die het verschil toont tussen access- en functionele rollen qua overerving

  • Access-rollen hebben specifieke privileges op specifieke objecten
  • Functionele rollen staan erboven en erven van access-rollen
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)
Snowflake-beheer, -governance en -samenwerking

Zo werkt het

Hoe het in de praktijk werkt

  • Access-rollen hebben specifieke privileges
  • Functionele rollen erven van één of meer access-rollen
  • Users krijgen functionele rollen toegewezen
Snowflake-beheer, -governance en -samenwerking

De hiërarchie bouwen in SQL

Stap 1: Maak een access-rol en geef object-privileges

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;

Stap 2: Maak een functionele rol en laat die erven van de access-rol

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Stap 3: Ken de functionele rol toe aan een user

GRANT ROLE analyst TO USER ana;
Snowflake-beheer, -governance en -samenwerking

Account-rollen vs database-rollen

Account-rollen Database-rollen
Scope Over alle databases en schema’s Beperkt tot één database
Toegewezen aan users? Ja Nee – toegewezen aan een account-rol
SQL CREATE ROLE CREATE DATABASE ROLE
Use case Weergave van functies in het account Bundelt objecttoegang binnen één database
Snowflake-beheer, -governance en -samenwerking

Secundaire rollen

  • Elke sessie heeft een primaire rol via USE ROLE <Role Name>
  • Standaard staan secundaire rollen op ALL: al je toegewezen rollen zijn actief
  • Gebruik USE SECONDARY ROLES <role_name> om een subset te activeren

  • USE SECONDARY ROLES NONE beperkt tot alleen de primaire rol

Secundaire rollen in een sessie beheren

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)
Snowflake-beheer, -governance en -samenwerking

Toekomstige grants

Geef automatisch SELECT op alle nieuwe tabellen in dit schema

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Snowflake-beheer, -governance en -samenwerking

Laten we oefenen!

Snowflake-beheer, -governance en -samenwerking

Preparing Video For Download...