Skip to content

自定义项目角色#

功能可用性

自定义角色适用于自托管 Enterprise 和 Cloud Enterprise 计划。套餐详情请参阅 n8n 的定价页面

可用版本: n8n 1.122.0 版本(2025 年 11 月 24 日发布)

密钥保管库范围从 n8n 2.13.0 版本起可用。

实例角色与项目角色

n8n 有两类角色: * Instance roles 实例角色账户类型):Owner、Admin 和 Member 角色,适用于整个 n8n 实例及所有项目 * Project roles 项目角色:适用于单个项目的角色(Admin、Editor、Viewer 以及自定义角色)

自定义角色属于项目级角色,只定义单个项目内的权限,而不是整个实例范围。

自定义项目角色允许你创建符合团队需求的特定权限角色。与内置项目角色(Admin、Editor、Viewer)不同,自定义角色可让你对工作流、凭据和其他项目资源进行细粒度的访问控制。

创建自定义角色#

实例所有者和实例管理员可以创建自定义角色。

创建自定义角色:

  1. 转到 Settings 设置 > Project roles 项目角色
  2. 选择 Create role 创建角色
  3. 输入角色名称和可选描述。
  4. 选择此角色的权限(范围):
    • Workflow permissions 工作流权限:查看、执行、编辑、创建、发布、转移、删除工作流,或管理工作流的数据脱敏。
    • Credential permissions 凭据权限:查看、编辑、创建、共享、取消共享、转移或删除凭据。
    • Project permissions 项目权限:查看、编辑或删除项目。
    • Folder permissions 文件夹权限:查看、编辑、创建、转移或删除文件夹。
    • Execution permission 执行权限:显示已脱敏的执行数据。
    • Secret vault permissions 密钥保管库权限:查看、创建、编辑、删除或同步项目的密钥保管库。
    • Secrets permission 密钥权限:在凭据中使用密钥。
    • Data table permissions 数据表权限:查看表、查看行、编辑表、编辑行、创建或删除表。
    • Project variable permissions 项目变量权限:查看、编辑、创建或删除项目变量。
    • Source control 源代码控制:推送到源代码控制。
  5. 选择 Create role 创建角色

为用户分配自定义角色#

项目管理员可以为项目成员分配自定义角色。自定义角色只在分配的项目内生效,用户可以在不同项目中拥有不同角色。

分配自定义角色:

  1. 选择项目。
  2. 选择 Project settings 项目设置
  3. Project members 项目成员 中浏览或搜索用户。
  4. 选择用户,并从下拉列表中选择自定义角色。
  5. 选择 Save 保存

项目级权限

自定义角色权限仅在角色被分配的项目内生效。若需在多个项目中授予相同权限,请在每个项目中分别分配该自定义角色。

编辑自定义角色#

要修改现有自定义角色:

  1. 前往 Settings 设置 > Project roles 项目角色
  2. 找到要编辑的自定义角色。
  3. 选择 three-dot menu 三点菜单 > Edit 编辑
  4. 更新角色名称、描述或权限。
  5. 选择 Save changes 保存更改

编辑会影响所有已分配用户

对自定义角色的更改会立即影响所有在任何项目中分配了该角色的用户。如果该角色在多个项目中使用,权限变更会在所有项目中生效。

复制自定义角色#

要基于现有角色创建新角色:

  1. 前往 Settings 设置 > Project roles 项目角色
  2. 找到要复制的角色。
  3. 选择 three-dot menu 三点菜单 > Duplicate 复制
  4. 根据需要修改角色名称和权限。
  5. 选择 Create role 创建角色

删除自定义角色#

要删除自定义角色:

  1. 前往 Settings 设置 > Project roles 项目角色
  2. 找到要删除的角色。
  3. 选择 three-dot menu 三点菜单 > Delete 删除
  4. 确认删除。

删除前重新分配用户

如果有用户被分配到该角色,你必须先将他们重新分配到其他角色,再删除该角色。

权限范围参考#

自定义角色使用权限范围来定义用户在项目内可以执行的操作。以下每个范围都对应 Project roles 项目角色编辑器中的一个复选框。章节标题与编辑器中的章节名称一致;范围代码则会出现在 API 响应和审计日志中。

自动授予的范围

n8n 会将某些范围成对授予,因此它们不会显示为单独的复选框:

  • 授予 <resource>:read 也会授予该资源匹配的 list 范围(例如,workflow:read 会授予 workflow:list)。
  • 授予 workflow:publish 也会授予 workflow:unpublish

Workflow scopes 工作流范围#

  • workflow:create - 创建新工作流
  • workflow:read - 查看工作流详情
  • workflow:update - 编辑工作流
  • workflow:execute - 执行工作流
  • workflow:publish - 发布工作流(也会授予 workflow:unpublish
  • workflow:delete - 删除工作流
  • workflow:move - 在项目之间转移工作流
  • workflow:enableRedaction - 为工作流开启数据脱敏(参见执行数据脱敏
  • workflow:disableRedaction - 为工作流关闭数据脱敏(参见执行数据脱敏

Credential scopes 凭据范围#

  • credential:create - 创建新凭据
  • credential:read - 查看凭据详情
  • credential:update - 编辑凭据
  • credential:delete - 删除凭据
  • credential:move - 在项目之间转移凭据
  • credential:share - 与其他用户共享凭据
  • credential:unshare - 移除凭据共享

Project scopes 项目范围#

  • project:read - 查看项目详情
  • project:update - 编辑项目设置
  • project:delete - 删除项目

Folder scopes 文件夹范围#

  • folder:create - 创建新文件夹
  • folder:read - 查看文件夹内容
  • folder:update - 重命名文件夹
  • folder:delete - 删除文件夹
  • folder:move - 转移文件夹

Execution scopes 执行范围#

Secret vault scopes 密钥保管库范围#

范围代码使用 externalSecretsProvider 前缀。角色编辑器将此章节列为 Secrets vaults 密钥保管库

  • externalSecretsProvider:create - 在项目中创建新的密钥保管库
  • externalSecretsProvider:read - 查看项目中的密钥保管库
  • externalSecretsProvider:update - 编辑密钥保管库配置
  • externalSecretsProvider:delete - 从项目中删除密钥保管库
  • externalSecretsProvider:sync - 重新加载保管库的密钥

Secrets scope 密钥范围#

范围代码使用 externalSecret 前缀。角色编辑器将此章节列为 Secrets 密钥

  • externalSecret:list - 在凭据中使用密钥

Data table scopes 数据表范围#

  • dataTable:create - 创建新数据表
  • dataTable:read - 查看数据表模式
  • dataTable:update - 编辑数据表模式
  • dataTable:delete - 删除数据表
  • dataTable:readRow - 读取数据表中的行
  • dataTable:writeRow - 在数据表中插入或更新行

Project variable scopes 项目变量范围#

  • projectVariable:create - 创建新变量
  • projectVariable:read - 查看变量值
  • projectVariable:update - 编辑变量值
  • projectVariable:delete - 删除变量

Source control scopes#

  • sourceControl:push - 向源代码控制推送更改

常见自定义角色示例#

以下是一些常见用例的自定义项目角色示例。请记住,这些角色只在单个项目内生效,而不是整个 n8n 实例范围。

Workflow developer 工作流开发者#

适用于仅处理工作流的用户: * workflow:createworkflow:readworkflow:updateworkflow:executeworkflow:delete * credential:read(可查看凭据但不能编辑) * project:read

Credential manager 凭据管理员#

适用于管理凭据的用户: * credential:createcredential:readcredential:updatecredential:deletecredential:share * workflow:read(查看工作流以了解凭据使用情况) * project:read

Secrets user 密钥用户#

适用于需要在凭据中使用外部密钥但不需要管理保管库的用户: * externalSecret:list(在凭据表达式中使用密钥) * credential:createcredential:readcredential:update(管理带密钥的凭据) * workflow:read * project:read

Workflow publisher 工作流发布者#

适用于可以发布工作流但没有完整编辑权限的用户: * workflow:readworkflow:publish * credential:read * project:read

组合权限范围

你可以组合任意权限范围来创建符合需求的角色。遵循最小权限原则:仅授予用户完成任务所需的权限。