Peran Kustom dan Peran Sekunder

Manajemen, Tata Kelola, & Kolaborasi Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Masalah pada Skenario Peran Datar

Daftar analis yang menunjuk ke berbagai privilege.

Manajemen, Tata Kelola, & Kolaborasi Snowflake

Peran Akses vs Peran Fungsional

Perbandingan akses vs peran fungsional terkait pewarisan peran

  • Peran akses memiliki privilege spesifik pada objek spesifik
  • Peran fungsional berada di atas dan mewarisi dari peran akses
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)
Manajemen, Tata Kelola, & Kolaborasi Snowflake

Cara Kerjanya

Cara kerjanya dalam praktik

  • Peran akses memegang privilege spesifik
  • Peran fungsional mewarisi dari satu atau lebih peran akses
  • User ditetapkan peran fungsional
Manajemen, Tata Kelola, & Kolaborasi Snowflake

Membangun Hierarki di SQL

Langkah 1: Buat peran akses dan grant privilege objek

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;

Langkah 2: Buat peran fungsional dan warisi peran akses

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Langkah 3: Tetapkan peran fungsional ke user

GRANT ROLE analyst TO USER ana;
Manajemen, Tata Kelola, & Kolaborasi Snowflake

Peran Akun vs Peran Database

Peran Akun Peran Database
Cakupan Mencakup semua database atau skema Terbatas pada satu database
Ditugaskan ke user? Ya Tidak - diberikan ke peran akun
SQL CREATE ROLE CREATE DATABASE ROLE
Use case Mewakili fungsi pekerjaan di seluruh akun Mengelompokkan akses objek dalam satu database
Manajemen, Tata Kelola, & Kolaborasi Snowflake

Peran Sekunder

  • Tiap sesi memiliki peran utama dengan USE ROLE <Role Name>
  • Default, peran sekunder = ALL: semua peran yang Anda miliki aktif
  • Gunakan USE SECONDARY ROLES <role_name> untuk mengaktifkan subset tertentu

  • USE SECONDARY ROLES NONE untuk membatasi hanya ke peran utama

Kendalikan peran sekunder dalam sesi

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)
Manajemen, Tata Kelola, & Kolaborasi Snowflake

Future Grants

Otomatis memberi GRANT SELECT pada tabel baru di skema ini

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Manajemen, Tata Kelola, & Kolaborasi Snowflake

Ayo berlatih!

Manajemen, Tata Kelola, & Kolaborasi Snowflake

Preparing Video For Download...