RBAC、DAC 与可保护对象层级

Snowflake 管理、治理与协作

Emily Melhuish

Technical Curriculum Developer, Snowflake

认识 Claro

  • 全球信用建设应用 Claro 的仿制标志
Snowflake 管理、治理与协作

访问问题

access_control.png

Snowflake 管理、治理与协作

构成要素

权限即执行某操作的许可:

  • SELECT:读
  • INSERT:写
  • CREATE:构建
术语 定义
权限 执行动作的许可(如 SELECT、INSERT、CREATE)
对象 可授予权限的实体(表、架构、数据库、仓库)
角色 被授予权限的实体;可授予给用户或其他角色
用户 连接到 Snowflake 并持有角色的个人或服务账号
Snowflake 管理、治理与协作

基于角色的访问控制(RBAC):工作方式

 

从左到右显示权限、角色和用户的流程图

Snowflake 管理、治理与协作

实施 RBAC

将权限授予角色

GRANT SELECT ON TABLE core.credit_scores
  TO ROLE analyst_role;

将角色分配给用户

GRANT ROLE analyst_role TO USER maria;
1 [Snowflake: Access Control Privileges](https://docs.snowflake.com/en/user-guide/security-access-control-privileges)
Snowflake 管理、治理与协作

自主访问控制(DAC)

显示转移前后 DAC 的分区图

  • 每个对象都有所有者 = 角色,而非个人
  • RBAC 定义角色结构
  • DAC 决定各角色可控范围
Snowflake 管理、治理与协作

转移所有权

将所有权转移到其他角色

-- 当前所有者:SYSADMIN
GRANT OWNERSHIP ON TABLE core.credit_scores
  TO ROLE data_engineer
  REVOKE CURRENT GRANTS;
Snowflake 管理、治理与协作

可保护对象层级

可保护对象层级

Snowflake 管理、治理与协作

在各层授予 USAGE

GRANT USAGE ON DATABASE <your_database>
  TO ROLE analyst_role;

GRANT USAGE ON SCHEMA core
  TO ROLE analyst_role;

GRANT SELECT ON TABLE core.credit_scores
  TO ROLE analyst_role;
Snowflake 管理、治理与协作

系统定义的角色

 

角色 职责
ACCOUNTADMIN 账户全局控制
SYSADMIN 创建数据库和仓库
SECURITYADMIN 网络策略、掩码策略、角色管理
USERADMIN 创建用户并分配角色
PUBLIC 每个用户的默认角色
1 [Snowflake: Access Control Overview](https://docs.snowflake.com/en/user-guide/security-access-control-overview)
Snowflake 管理、治理与协作

让我们练习!

Snowflake 管理、治理与协作

Preparing Video For Download...