Ruoli personalizzati e ruoli secondari

Gestione, governance e collaborazione in Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Il problema degli scenari a ruoli piatti

Elenco di analyst che indicano diversi privilegi.

Gestione, governance e collaborazione in Snowflake

Ruoli di accesso vs ruoli funzionali

Divisione che mostra la differenza tra ruoli di accesso e ruoli funzionali in termini di ereditarietà

  • I ruoli di accesso detengono privilegi specifici su oggetti specifici
  • I ruoli funzionali stanno sopra e ereditano dai ruoli di accesso
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)
Gestione, governance e collaborazione in Snowflake

Come funziona

Come funziona nella pratica

  • I ruoli di accesso detengono privilegi specifici
  • I ruoli funzionali ereditano da uno o più ruoli di accesso
  • Gli utenti ricevono ruoli funzionali
Gestione, governance e collaborazione in Snowflake

Costruire la gerarchia in SQL

Passo 1: crea un ruolo di accesso e concedi privilegi sugli oggetti

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;

Passo 2: crea un ruolo funzionale ed eredita il ruolo di accesso

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Passo 3: assegna il ruolo funzionale a un utente

GRANT ROLE analyst TO USER ana;
Gestione, governance e collaborazione in Snowflake

Ruoli account vs ruoli database

Ruoli account Ruoli database
Ambito Coprono qualsiasi database o schema Limitati a un singolo database
Assegnati a utenti? No - concessi a un ruolo account
SQL CREATE ROLE CREATE DATABASE ROLE
Caso d'uso Rappresentano funzioni nel conto Raggruppano accessi agli oggetti in un database
Gestione, governance e collaborazione in Snowflake

Ruoli secondari

  • Ogni sessione ha un ruolo primario impostato con USE ROLE <Role Name>
  • Per impostazione predefinita, i ruoli secondari sono ALL: tutti i ruoli assegnati sono attivi
  • Usa USE SECONDARY ROLES <role_name> per attivarne un sottoinsieme

  • USE SECONDARY ROLES NONE per limitarsi al solo ruolo primario

Controlla i ruoli secondari in una sessione

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)
Gestione, governance e collaborazione in Snowflake

Concessioni future

Concedi automaticamente SELECT su tutte le nuove tabelle aggiunte a questo schema

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Gestione, governance e collaborazione in Snowflake

Passiamo alla pratica !

Gestione, governance e collaborazione in Snowflake

Preparing Video For Download...