Roluri personalizate și roluri secundare

Administrare, Guvernanță și Colaborare în Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Problema scenariilor cu roluri plate

Listă de analiști cu privilegii diferite.

Administrare, Guvernanță și Colaborare în Snowflake

Roluri de acces vs. roluri funcționale

Diferența dintre rolurile de acces și cele funcționale în termeni de moștenire

  • Rolurile de acces dețin privilegii specifice asupra obiectelor
  • Rolurile funcționale sunt superioare și moștenesc din rolurile de acces
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)
Administrare, Guvernanță și Colaborare în Snowflake

Cum funcționează

Cum funcționează în practică

  • Rolurile de acces dețin privilegii specifice
  • Rolurile funcționale moștenesc din unul sau mai multe roluri de acces
  • Utilizatorii primesc roluri funcționale
Administrare, Guvernanță și Colaborare în Snowflake

Construirea ierarhiei în SQL

Pasul 1: Creați un rol de acces și acordați-i privilegii asupra obiectelor

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;

Pasul 2: Creați un rol funcțional și moșteniți rolul de acces

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Pasul 3: Atribuiți rolul funcțional unui utilizator

GRANT ROLE analyst TO USER ana;
Administrare, Guvernanță și Colaborare în Snowflake

Roluri de cont vs. roluri de bază de date

Roluri de cont Roluri de bază de date
Domeniu de aplicare Orice bază de date sau schemă Limitat la o singură bază de date
Atribuit utilizatorilor? Da Nu - acordat unui rol de cont
SQL CREATE ROLE CREATE DATABASE ROLE
Caz de utilizare Funcții la nivelul contului Acces la obiecte într-o singură bază de date
Administrare, Guvernanță și Colaborare în Snowflake

Roluri secundare

  • Fiecare sesiune are un rol primar setat cu USE ROLE <Role Name>
  • Implicit, rolurile secundare sunt setate la ALL: toate rolurile atribuite sunt active
  • Utilizați USE SECONDARY ROLES <role_name> pentru a activa un subset specific

  • USE SECONDARY ROLES NONE pentru a restricționa la rolul primar

Controlul rolurilor secundare într-o sesiune

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)
Administrare, Guvernanță și Colaborare în Snowflake

Granturi viitoare

Acordați automat SELECT pentru orice tabele noi adăugate în această schemă

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Administrare, Guvernanță și Colaborare în Snowflake

Să exersăm!

Administrare, Guvernanță și Colaborare în Snowflake

Preparing Video For Download...