共享工作区的最佳实践

以下建议详细介绍了管理员如何有效规划、配置和维护共享工作区。

规划和设置共享工作区

共享工作区在标准数据库中作为架构级对象创建,并遵循 Snowflake 现有的基于角色访问控制 (RBAC) 模型。

要创建共享工作区,用户必须拥有目标架构或具备以下权限:

  • 数据库和架构上的 USAGE

  • 架构的 CREATE WORKSPACE

授予创建权限

  1. 作为管理员,可通过运行以下命令,向用户授予所需的架构级权限:

    GRANT USAGE ON DATABASE <database_name>.<schema_name> TO ROLE <role_name>;
    GRANT CREATE WORKSPACE ON SCHEMA <database_name>.<schema_name> TO ROLE <role_name>;
    
    Copy

工作区管理命令

使用以下命令监控并管理对现有共享工作区的访问权限。

操作

语法

列出所有工作区

SHOW WORKSPACES IN ACCOUNT;

查看工作区权限

SHOW GRANTS ON WORKSPACE <workspace_name>;

授予编辑权限

GRANT WRITE ON WORKSPACE <workspace_name> TO ROLE <role_name>;

撤销编辑权限

REVOKE WRITE ON WORKSPACE <workspace_name> FROM ROLE <role_name>;

示例

GRANT WRITE ON WORKSPACE my_workspace;

REVOKE WRITE ON WORKSPACE my_workspace;
Copy

治理最佳实践

在账户中启用共享工作区时,请考虑以下最佳实践:

  • 有意识地计划:将共享工作区与特定团队、项目或用例保持一致。定义明确的工作区数量并确保定义明确,可降低混乱和用户困惑。

  • 限制创建权限:将 CREATE WORKSPACE 权限限制给指定管理员角色和架构所有者。广泛授予权限可能导致不必要的重复或工作区无序扩张。

  • 监控工作区生命周期:定期审查现有共享工作区,淘汰过时或未使用的工作区。建立轻量级审查流程(例如每季度一次),确保只有活跃且相关的工作区可用。

组织模型

管理员可根据组织的协作模式,以不同方式构建共享工作区:

集中式协作中心

单一数据库和架构用于所有团队的共享工作区,为跨团队协作提供统一位置。

示例设置

CREATE DATABASE IF NOT EXISTS SHARED_WORKSPACES_DB;
CREATE SCHEMA IF NOT EXISTS SHARED_WORKSPACES_SCHEMA;

GRANT USAGE ON DATABASE SHARED_WORKSPACES_DB.SHARED_WORKSPACES_SCHEMA TO ROLE WORKSPACES_STEWARDS;
GRANT CREATE WORKSPACE ON SCHEMA SHARED_WORKSPACES_DB.SHARED_WORKSPACES_SCHEMA TO ROLE WORKSPACES_STEWARDS;
Copy

Example structure

Centralized shared workspaces structure

团队范围的工作区

每个团队拥有自己的数据库或架构,并在其范围内管理共享工作区。此模型适合按部门、学科或业务单位已分配数据库和角色的组织。

Example structure

Team scoped shared workspaces structure

混合方法

对跨团队或高可见性项目使用中央架构,同时日常协作使用团队专属架构。该模型在灵活性与集中治理及可发现性之间取得平衡。

角色设计与访问管理注意事项

  • 共享工作区只能与 **角色**(非个人用户)共享。

  • 大多数组织可以使用其现有角色来管理访问权限。除非必要,否则避免仅为共享工作区创建新角色。

最佳实践

  • 使用已经代表团队成员资格或职能的现有角色。

  • 分配指定的管理员角色,负责管理访问权限和维护工作区结构。

采用和维护

  • 命名约定: 使用清晰、一致的模式(例如 TEAM_PROJECT_NAME),提高可发现性。

  • 所有权: 为每个共享工作区分配管理员或所有者角色,确保责任明确。

  • 文档: 维护内部目录或 Wiki,列出活动的共享工作区及其用途。

  • 一致性: 当代码或查询可协作时,鼓励用户从私有工作区迁移到共享工作区。

  • 定期审查: 定期审核角色、架构和共享工作区,确保符合组织策略和团队结构。

语言: 中文