Studio 中的文件与文件夹支持基于 ACL(Access Control List)的精细化授权。本节介绍文件权限的模型、授权方式与生效范围,便于您根据团队协作需要限制开发文件的访问与修改权限。
概述
Studio 中的文件权限由两层共同决定:
1. 角色权限点(项目级) :通过工作空间角色控制是否能访问 Studio 模块、是否能创建文件等粗粒度操作。详见 成员与权限管理。
2. 文件 ACL(对象级) :在文件夹或文件层级,通过 ACL 授予具体用户或角色「管理、编辑、运行、查看」权限。本文重点介绍 ACL。
前提条件
您是文件、文件夹的创建人,或被授予了「管理」权限。
仅 Workspace 下的对象支持 ACL 授权,GitFolder 下的对象不支持 ACL 授权。
您所在的角色需具备访问 Studio 模块的权限点。
权限模型
权限项
权限 | 包含的能力 |
管理 | 查看、运行、编辑文件;管理 ACL(添加 / 删除授权);删除文件、移动、重命名。 |
编辑 | 查看、运行、编辑文件;不能管理 ACL;不能删除文件。 |
运行 | 查看文件;运行 Notebook / SQL / Python 文件;不能编辑、不能删除。 |
查看 | 仅可打开文件查看代码与历史,不能运行、编辑或删除。 |
无 | 不可见。文件不会出现在该用户的开发目录中。 |
权限继承
文件夹 ACL 自动继承到其下的子文件夹与文件。
子对象可单独覆盖授权;覆盖后该子对象的 ACL 以自身为准,与父文件夹脱钩。
默认授权
创建人默认拥有「管理」权限。
工作空间管理员默认拥有所有 Workspace 下对象的「管理」权限。
其他用户默认无任何权限(不可见)。
操作步骤
步骤 1:进入文件权限配置
1. 在 Studio 开发目录中右键目标文件夹或文件。
2. 选择 权限配置 。
步骤 2:添加授权
1. 在权限配置抽屉中单击 添加授权 。
2. 在「主体」下拉中选择 用户 或 角色 ,并搜索目标用户名、角色名。
3. 在「权限」下拉中选择 管理、编辑、运行、查看 。
4. 单击 确定 保存。
步骤 3:调整或撤销授权
在已授权列表中单击行末的 编辑 ,可修改权限项。
单击 删除 ,可移除该用户、角色的授权。删除后该主体回到「无权限」状态。
步骤 4:查看生效权限
抽屉底部「生效权限」列表显示当前文件、文件夹下所有有权访问的用户与权限项。
该列表合并了直接授权与继承授权,供您快速核对。
参数说明
参数 | 说明 | 是否必填 | 默认值 |
主体类型 | 选择「用户」或「用户组」。 | 是 | 无 |
主体 | 用户名或用户组名称。 | 是 | 无 |
权限 | 可管理 / 可编辑 / 可运行 / 可查看。 | 是 | 可管理 |
使用限制
Git 文件夹下的对象不支持 ACL,所有项目成员均拥有管理权限。
工作空间管理员的「管理」权限不可撤销。
文件被删除后,ACL 一并随回收站记录保留;恢复后 ACL 自动还原。
常见问题
Q1:用户被授予了「编辑」权限,但仍然不能在 Workflow 中运行该文件,为什么?
运行 Workflow 中的任务需要文件的「运行」权限。如果该任务的运行账号没有运行权限,提交或调度时会返回权限校验失败。请同时给运行账号授予「运行」或更高权限。
Q2:撤销一个用户的「管理」权限,他原先创建的子文件夹会受影响吗?
不会。子对象的 ACL 独立保存。撤销「管理」权限后该用户无法继续管理新对象,但已存在子对象的 ACL 不会自动调整。
Q3:授权给「角色」与授权给「用户组」哪个优先?
两者并存。某用户的最终权限是其所属用户组权限与个人权限的并集。例如:用户组被授予「查看」、个人被授予「编辑」,则最终权限为「编辑」。
Q4:文件移动到另一个父文件夹时,ACL 是跟随子对象走,还是被新父文件夹覆盖?
两者并存。子对象本身的 ACL 权限项会保留,同时继承新父文件夹的权限,继承原父文件夹的权限项会被移除。