Anpassade roller och sekundära roller

Snowflake-hantering, styrning och samarbete

Emily Melhuish

Technical Curriculum Developer, Snowflake

Problemet med platta rollscenarier

Lista med analytiker som pekar på olika behörigheter.

Snowflake-hantering, styrning och samarbete

Åtkomstroller vs. funktionella roller

Uppdelning som visar skillnaden mellan åtkomst- och funktionella roller avseende ärvda roller

  • Åtkomstroller innehar specifika behörigheter för specifika objekt
  • Funktionella roller ligger ovanför och ärver från åtkomstroller
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-hantering, styrning och samarbete

Så här fungerar det

Hur det fungerar i praktiken

  • Åtkomstroller innehar specifika behörigheter
  • Funktionella roller ärver från en eller flera åtkomstroller
  • Användare tilldelas funktionella roller
Snowflake-hantering, styrning och samarbete

Bygga hierarkin i SQL

Steg 1: Skapa en åtkomstroll och tilldela den objektbehörigheter

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;

Steg 2: Skapa en funktionell roll och ärv åtkomstrollen

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Steg 3: Tilldela den funktionella rollen till en användare

GRANT ROLE analyst TO USER ana;
Snowflake-hantering, styrning och samarbete

Kontoroller vs. databasroller

Kontoroller Databasroller
Omfång Spänner över valfri databas eller schema Begränsad till en enskild databas
Tilldelas användare? Ja Nej – tilldelas en kontoroll istället
SQL CREATE ROLE CREATE DATABASE ROLE
Användningsfall Representerar jobbfunktioner i kontot Samlar objektbehörigheter inom en databas
Snowflake-hantering, styrning och samarbete

Sekundära roller

  • Varje session har en primär roll som anges med USE ROLE <Role Name>
  • Som standard är sekundära roller inställda på ALL: alla tilldelade roller är aktiva
  • Använd USE SECONDARY ROLES <role_name> för att aktivera en specifik delmängd

  • USE SECONDARY ROLES NONE för att begränsa till enbart den primära rollen

Styr sekundära roller i en session

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-hantering, styrning och samarbete

Framtida behörigheter

Tilldela automatiskt SELECT för nya tabeller som läggs till i detta schema

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Snowflake-hantering, styrning och samarbete

Lass uns üben!

Snowflake-hantering, styrning och samarbete

Preparing Video For Download...