Papéis personalizados e papéis secundários

Gerenciamento, Governança e Colaboração no Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

O problema de cenários planos de papéis

Lista de analistas apontando para diferentes privilégios.

Gerenciamento, Governança e Colaboração no Snowflake

Papéis de acesso vs. papéis funcionais

Divisão mostrando a diferença entre papéis de acesso e funcionais em termos de herança

  • Papéis de acesso têm privilégios específicos em objetos específicos
  • Papéis funcionais ficam acima e herdam dos papéis de acesso
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)
Gerenciamento, Governança e Colaboração no Snowflake

Como funciona

Como funciona na prática

  • Papéis de acesso mantêm privilégios específicos
  • Papéis funcionais herdam de um ou mais papéis de acesso
  • Usuários recebem papéis funcionais
Gerenciamento, Governança e Colaboração no Snowflake

Construindo a hierarquia em SQL

Passo 1: Crie um papel de acesso e conceda privilégios em objetos

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: Crie um papel funcional e herde o papel de acesso

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Passo 3: Atribua o papel funcional a um usuário

GRANT ROLE analyst TO USER ana;
Gerenciamento, Governança e Colaboração no Snowflake

Papéis da conta vs. papéis do banco

Papéis da conta Papéis do banco de dados
Escopo Abarcam qualquer banco ou schema Limitados a um único banco
Atribuídos a usuários? Sim Não – concedidos a um papel da conta
SQL CREATE ROLE CREATE DATABASE ROLE
Caso de uso Representam funções no nível da conta Agrupam acesso a objetos em um único banco
Gerenciamento, Governança e Colaboração no Snowflake

Papéis secundários

  • Cada sessão tem um papel primário com USE ROLE <Role Name>
  • Por padrão, papéis secundários = ALL: todos os seus papéis ficam ativos
  • Use USE SECONDARY ROLES <role_name> para ativar um subconjunto

  • USE SECONDARY ROLES NONE restringe só ao papel primário

Controlar papéis secundários na sessão

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)
Gerenciamento, Governança e Colaboração no Snowflake

Concessões futuras

Conceder SELECT automaticamente a novas tabelas deste schema

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Gerenciamento, Governança e Colaboração no Snowflake

Vamos praticar!

Gerenciamento, Governança e Colaboração no Snowflake

Preparing Video For Download...