Користувацькі ролі та вторинні ролі

Керування, врядування й співпраця в Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Проблема з пласкими сценаріями ролей

Список аналітиків, що вказують на різні привілеї.

Керування, врядування й співпраця в Snowflake

Ролі доступу vs функціональні ролі

Поділ, що показує різницю між ролями доступу та функціональними ролями щодо успадкування

  • Ролі доступу містять конкретні привілеї на конкретні об’єкти
  • Функціональні ролі стоять вище й успадковують ролі доступу
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

Як це працює

Як це працює на практиці

  • Ролі доступу містять конкретні привілеї
  • Функціональні ролі успадковують одну або кілька ролей доступу
  • Користувачам призначають функціональні ролі
Керування, врядування й співпраця в Snowflake

Побудова ієрархії в SQL

Крок 1: Створіть роль доступу й надайте їй привілеї на об’єкти

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;

Крок 2: Створіть функціональну роль і успадкуйте роль доступу

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Крок 3: Призначте функціональну роль користувачу

GRANT ROLE analyst TO USER ana;
Керування, врядування й співпраця в Snowflake

Ролі облікового запису vs ролі бази даних

Ролі облікового запису Ролі бази даних
Область Охоплюють будь-яку базу або схему Обмежені однією базою даних
Призначаються користувачам? Так Ні — надаються ролі облікового запису
SQL CREATE ROLE CREATE DATABASE ROLE
Використання Представляють функції в межах облікового запису Об’єднують доступ до об’єктів у межах однієї бази
Керування, врядування й співпраця в Snowflake

Вторинні ролі

  • У кожній сесії первинна роль задається USE ROLE <Role Name>
  • Типово вторинні ролі = ALL: усі призначені вам ролі активні
  • Використовуйте USE SECONDARY ROLES <role_name>, щоб активувати певний піднабір

  • USE SECONDARY ROLES NONE — лише первинна роль

Керування вторинними ролями в сесії

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

Майбутні надання прав (Future Grants)

Автоматично надавати SELECT для всіх нових таблиць у цій схемі

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Керування, врядування й співпраця в Snowflake

Перейдемо до практики!

Керування, врядування й співпраця в Snowflake

Preparing Video For Download...