Vai trò tùy chỉnh và vai trò phụ

Quản trị, Quản trị dữ liệu & Cộng tác trên Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Vấn đề với kịch bản vai trò phẳng

Danh sách nhà phân tích chỉ vào các đặc quyền khác nhau.

Quản trị, Quản trị dữ liệu & Cộng tác trên Snowflake

Vai trò truy cập vs vai trò chức năng

Phân tách cho thấy khác biệt giữa vai trò truy cập và vai trò chức năng về vai trò kế thừa

  • Vai trò truy cập nắm giữ các đặc quyền cụ thể trên các đối tượng cụ thể
  • Vai trò chức năng nằm phía trên và kế thừa từ vai trò truy cập
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)
Quản trị, Quản trị dữ liệu & Cộng tác trên Snowflake

Cách hoạt động

Cách hoạt động trong thực tế

  • Vai trò truy cập nắm giữ đặc quyền cụ thể
  • Vai trò chức năng kế thừa từ một hoặc nhiều vai trò truy cập
  • Gán vai trò chức năng cho người dùng
Quản trị, Quản trị dữ liệu & Cộng tác trên Snowflake

Xây dựng phân cấp bằng SQL

Bước 1: Tạo vai trò truy cập và cấp đặc quyền trên đối tượng

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;

Bước 2: Tạo vai trò chức năng và kế thừa vai trò truy cập

CREATE ROLE analyst;
GRANT ROLE credit_read TO ROLE analyst;

Bước 3: Gán vai trò chức năng cho người dùng

GRANT ROLE analyst TO USER ana;
Quản trị, Quản trị dữ liệu & Cộng tác trên Snowflake

Vai trò tài khoản vs vai trò database

Vai trò cấp tài khoản Vai trò cấp cơ sở dữ liệu
Phạm vi Bao phủ mọi database hoặc schema Giới hạn trong một database
Gán cho người dùng? Không - cấp cho một vai trò tài khoản
SQL CREATE ROLE CREATE DATABASE ROLE
Trường hợp dùng Đại diện chức năng công việc trên toàn tài khoản Gom quyền truy cập đối tượng trong một database
Quản trị, Quản trị dữ liệu & Cộng tác trên Snowflake

Vai trò phụ

  • Mỗi phiên có một vai trò chính, đặt bằng USE ROLE <Role Name>
  • Mặc định, vai trò phụ là ALL: mọi vai trò được gán đều hoạt động
  • Dùng USE SECONDARY ROLES <role_name> để kích hoạt một tập con cụ thể

  • USE SECONDARY ROLES NONE để chỉ dùng vai trò chính

Kiểm soát vai trò phụ trong một phiê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)
Quản trị, Quản trị dữ liệu & Cộng tác trên Snowflake

Future Grants

Tự động cấp SELECT cho mọi bảng mới thêm vào schema này

GRANT SELECT ON FUTURE TABLES
  IN SCHEMA core
  TO ROLE credit_read;
Quản trị, Quản trị dữ liệu & Cộng tác trên Snowflake

Ayo berlatih!

Quản trị, Quản trị dữ liệu & Cộng tác trên Snowflake

Preparing Video For Download...