Roles personalizados y roles secundarios

Gestión, gobierno y colaboración en Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

El problema de los escenarios de roles planos

Lista de analistas señalando distintos privilegios.

Gestión, gobierno y colaboración en Snowflake

Roles de acceso vs. roles funcionales

División que muestra la diferencia entre roles de acceso y funcionales en términos de roles heredados

  • Los roles de acceso tienen privilegios específicos sobre objetos específicos
  • Los roles funcionales están encima y heredan de los roles de acceso
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)
Gestión, gobierno y colaboración en Snowflake

Cómo funciona

Cómo funciona en la práctica

  • Los roles de acceso tienen privilegios específicos
  • Los roles funcionales heredan de uno o más roles de acceso
  • A los usuarios se les asignan roles funcionales
Gestión, gobierno y colaboración en Snowflake

Crear la jerarquía en SQL

Paso 1: Crea un rol de acceso y concédele privilegios sobre 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;

Paso 2: Crea un rol funcional y hereda el rol de acceso

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Paso 3: Asigna el rol funcional a una persona usuaria

GRANT ROLE analyst TO USER ana;
Gestión, gobierno y colaboración en Snowflake

Roles de cuenta vs. roles de base de datos

Roles de cuenta Roles de base de datos
Ámbito Abarcan cualquier base o esquema Limitados a una sola base de datos
¿Asignados a usuarios? No: se otorgan a un rol de cuenta
SQL CREATE ROLE CREATE DATABASE ROLE
Caso de uso Representan funciones del trabajo en la cuenta Agrupan acceso a objetos en una base de datos
Gestión, gobierno y colaboración en Snowflake

Roles secundarios

  • Cada sesión tiene un rol principal con USE ROLE <Role Name>
  • Por defecto, los roles secundarios están en ALL: todos tus roles asignados activos
  • Usa USE SECONDARY ROLES <role_name> para activar un subconjunto

  • USE SECONDARY ROLES NONE limita solo al rol principal

Controla los roles secundarios en una sesión

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)
Gestión, gobierno y colaboración en Snowflake

Concesiones futuras

Concede automáticamente SELECT en cualquier tabla nueva de este esquema

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Gestión, gobierno y colaboración en Snowflake

¡Vamos a practicar!

Gestión, gobierno y colaboración en Snowflake

Preparing Video For Download...