共享工作区的最佳实践¶
以下建议详细介绍了管理员如何有效规划、配置和维护共享工作区。
规划和设置共享工作区¶
共享工作区在标准数据库中作为架构级对象创建,并遵循 Snowflake 现有的基于角色访问控制 (RBAC) 模型。
要创建共享工作区,用户必须拥有目标架构或具备以下权限:
数据库和架构上的 USAGE
架构的 CREATE WORKSPACE
授予创建权限¶
作为管理员,可通过运行以下命令,向用户授予所需的架构级权限:
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
工作区管理命令¶
使用以下命令监控并管理对现有共享工作区的访问权限。
操作 |
语法 |
|---|---|
列出所有工作区 |
|
查看工作区权限 |
|
授予编辑权限 |
|
撤销编辑权限 |
|
示例
GRANT WRITE ON WORKSPACE my_workspace;
REVOKE WRITE ON WORKSPACE my_workspace;
治理最佳实践¶
在账户中启用共享工作区时,请考虑以下最佳实践:
有意识地计划:将共享工作区与特定团队、项目或用例保持一致。定义明确的工作区数量并确保定义明确,可降低混乱和用户困惑。
限制创建权限:将 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;
Example structure
团队范围的工作区¶
每个团队拥有自己的数据库或架构,并在其范围内管理共享工作区。此模型适合按部门、学科或业务单位已分配数据库和角色的组织。
Example structure
混合方法¶
对跨团队或高可见性项目使用中央架构,同时日常协作使用团队专属架构。该模型在灵活性与集中治理及可发现性之间取得平衡。
角色设计与访问管理注意事项¶
共享工作区只能与 **角色**(非个人用户)共享。
大多数组织可以使用其现有角色来管理访问权限。除非必要,否则避免仅为共享工作区创建新角色。
最佳实践¶
使用已经代表团队成员资格或职能的现有角色。
分配指定的管理员角色,负责管理访问权限和维护工作区结构。
采用和维护¶
命名约定: 使用清晰、一致的模式(例如
TEAM_PROJECT_NAME),提高可发现性。所有权: 为每个共享工作区分配管理员或所有者角色,确保责任明确。
文档: 维护内部目录或 Wiki,列出活动的共享工作区及其用途。
一致性: 当代码或查询可协作时,鼓励用户从私有工作区迁移到共享工作区。
定期审查: 定期审核角色、架构和共享工作区,确保符合组织策略和团队结构。