Role niestandardowe i role pomocnicze

Zarządzanie, ład danych i współpraca w Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Problem z płaską strukturą ról

Lista analityków wskazujących na różne uprawnienia.

Zarządzanie, ład danych i współpraca w Snowflake

Role dostępu a role funkcjonalne

Porównanie ról dostępu i ról funkcjonalnych pod względem dziedziczonych uprawnień

  • Role dostępu przechowują określone uprawnienia do konkretnych obiektów
  • Role funkcjonalne są nadrzędne i dziedziczą po rolach dostępu
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)
Zarządzanie, ład danych i współpraca w Snowflake

Jak to działa

Jak to działa w praktyce

  • Role dostępu przechowują określone uprawnienia
  • Role funkcjonalne dziedziczą po jednej lub wielu rolach dostępu
  • Użytkownicy otrzymują role funkcjonalne
Zarządzanie, ład danych i współpraca w Snowflake

Budowanie hierarchii w SQL

Krok 1: Utwórz rolę dostępu i nadaj jej uprawnienia do obiektów

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;

Krok 2: Utwórz rolę funkcjonalną i odziedzicz rolę dostępu

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Krok 3: Przypisz rolę funkcjonalną użytkownikowi

GRANT ROLE analyst TO USER ana;
Zarządzanie, ład danych i współpraca w Snowflake

Role konta a role bazodanowe

Role konta Role bazodanowe
Zakres Dowolna baza danych lub schemat Ograniczony do jednej bazy danych
Przypisywane do użytkowników? Tak Nie – nadawane roli konta
SQL CREATE ROLE CREATE DATABASE ROLE
Przypadek użycia Funkcje na poziomie konta Dostęp do obiektów w jednej bazie danych
Zarządzanie, ład danych i współpraca w Snowflake

Role pomocnicze

  • Każda sesja ma rolę podstawową ustawianą przez USE ROLE <Role Name>
  • Domyślnie role pomocnicze są ustawione na ALL: wszystkie przypisane role są aktywne
  • Użyj USE SECONDARY ROLES <role_name>, aby aktywować wybrany podzbiór

  • USE SECONDARY ROLES NONE ogranicza sesję wyłącznie do roli podstawowej

Zarządzanie rolami pomocniczymi w sesji

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)
Zarządzanie, ład danych i współpraca w Snowflake

Nadawanie uprawnień przyszłym obiektom

Automatyczne nadawanie SELECT dla nowych tabel dodawanych do tego schematu

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Zarządzanie, ład danych i współpraca w Snowflake

Czas na ćwiczenia!

Zarządzanie, ład danych i współpraca w Snowflake

Preparing Video For Download...