Vlastní role a sekundární role

Správa, správa dat a spolupráce ve Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Problém s plochými rolemi

Seznam analytiků odkazujících na různá oprávnění.

Správa, správa dat a spolupráce ve Snowflake

Přístupové role vs. funkční role

Rozdíl mezi přístupovými a funkčními rolemi z hlediska dědění

  • Přístupové role obsahují konkrétní oprávnění k objektům
  • Funkční role stojí výše a dědí z přístupových rolí
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)
Správa, správa dat a spolupráce ve Snowflake

Jak to funguje

Jak to funguje v praxi

  • Přístupové role obsahují konkrétní oprávnění
  • Funkční role dědí z jedné nebo více přístupových rolí
  • Uživatelům jsou přiřazeny funkční role
Správa, správa dat a spolupráce ve Snowflake

Budování hierarchie v SQL

Krok 1: Vytvořte přístupovou roli a udělte ji oprávnění k objektům

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: Vytvořte funkční roli a zdědí přístupovou roli

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Krok 3: Přiřaďte funkční roli uživateli

GRANT ROLE analyst TO USER ana;
Správa, správa dat a spolupráce ve Snowflake

Role účtu vs. databázové role

Role účtu Databázové role
Rozsah Libovolná databáze nebo schéma Omezeno na jednu databázi
Přiřazení uživatelům? Ano Ne – uděluje se roli účtu
SQL CREATE ROLE CREATE DATABASE ROLE
Použití Zastupují pracovní funkce v rámci účtu Sdružují přístup k objektům v jedné databázi
Správa, správa dat a spolupráce ve Snowflake

Sekundární role

  • Každá relace má primární roli nastavenou pomocí USE ROLE <Role Name>
  • Ve výchozím nastavení jsou sekundární role nastaveny na ALL: všechny přiřazené role jsou aktivní
  • Pomocí USE SECONDARY ROLES <role_name> aktivujete konkrétní podmnožinu

  • USE SECONDARY ROLES NONE omezí relaci pouze na primární roli

Správa sekundárních rolí v relaci

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)
Správa, správa dat a spolupráce ve Snowflake

Budoucí oprávnění

Automaticky udělí SELECT na nové tabulky přidané do tohoto schématu

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Správa, správa dat a spolupráce ve Snowflake

Pojďme si procvičit!

Správa, správa dat a spolupráce ve Snowflake

Preparing Video For Download...