> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashduty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 权限设计

> 了解 Flashduty 基于角色（RBAC）的功能权限和基于团队的数据权限设计

Flashduty 使用两种类型的权限：**功能权限**和**数据权限**，并在不同的功能场景配合使用。

<Warning>
  您必须同时拥有**功能权限**和**数据权限**，才能操作某些数据对象。功能权限是前提，决定您是否有权执行某类操作；数据权限在此基础上，进一步限定您可操作的数据范围。
</Warning>

## 功能权限

<Note>
  功能权限也叫操作权限，决定了用户可以使用系统的哪些功能或操作。具体表现为：API 是否可调用、按钮是否可点击、页面和菜单是否可见等。
</Note>

Flashduty **基于角色（RBAC）来控制功能权限**，按模块划分权限，实现精细化管理。系统预置了以下角色（您也可以自定义角色）：

### 预置角色

<AccordionGroup>
  <Accordion title="Admin - 管理员" icon="user-shield">
    拥有所有权限，适用于需要完整管理能力的核心成员。Admin 的权限位图查询范围为 `account_id IN (0, 当前账户 ID)`，因此会**自动包含**该账户下所有自定义菜单的访问权限点，无需单独绑定。
  </Accordion>

  <Accordion title="Responder - 响应者" icon="headset">
    拥有除「费用中心」「成员管理」「角色管理」「单点登录管理」外的全部**系统权限**，适用于处理日常运维工作的成员。Responder 的权限范围包括系统权限和当前账户权限（`account_id IN (0, 当前账户 ID)`），但排除标记为 `admin_only=1` 的权限。因此，Responder 自动获得非管理员专用的账户级动态权限，包括自定义菜单访问权限。
  </Accordion>

  <Accordion title="Viewer - 查看者" icon="eye">
    拥有除「审计」「快速开始」外的绝大部分只读**系统权限**，适用于仅需查看数据的成员。Viewer 受 `id < 100000` 过滤限制，**不会**自动获得任何自定义菜单的访问权限，需在自定义菜单中显式授权。
  </Accordion>
</AccordionGroup>

<Tip>
  **Responder** 角色不包含成员管理和角色管理权限。如需管理团队成员或分配角色，请使用 **Admin** 角色。
</Tip>

### 权限列表

系统按产品模块划分权限点，每个权限点分为 **Read**（只读）和 **Manage**（管理）两种类型。权限按以下产品范围分组展示，每组带有对应图标：

* **平台（Platform）**：组织管理、费用中心等基础平台权限
* **On-call**：告警响应、配置管理、状态页等值班相关权限
* **RUM**：前端监控相关权限
* **Monitors**：监控告警相关权限
* **自定义菜单（Custom menu）**：账户级动态权限组，每个已配置的自定义菜单对应一个权限点

<Note>
  当某个权限点同时存在 **Read** 和 **Manage** 类型时，授予 **Manage** 权限会自动关联授予对应的 **Read** 权限，无需单独勾选。
</Note>

#### 系统权限与账户级动态权限

Flashduty 的权限点分为两类：

* **系统权限（System）**：由 Flashduty 预先定义，所有账户一致，覆盖平台、On-call、RUM、Monitors 等内置模块。
* **账户级动态权限（Account）**：根据当前账户配置的资源动态生成，仅在该账户内可见。例如自定义菜单的访问权限属于此类——每新增一个自定义菜单，就会自动产生一个对应的权限点。

在角色配置接口返回的权限对象中，可以通过以下字段区分二者：

| 字段 | 说明 |
| - | - |
| `account_id` | `0` 表示系统权限；非 `0` 表示账户级动态权限，值为对应账户 ID |
| `source` | `system` 表示系统权限；`account` 表示账户级动态权限 |
| `source_ref` | 账户级动态权限的来源标识。自定义菜单为对应的 `menu_id` |

#### 自定义菜单权限组

自定义菜单是一个独立的权限范围，与平台、On-call、RUM、Monitors 平级展示。该组以**扁平列表**形式呈现，不再按 Read / Manage 拆分子类——账户内每配置一个自定义菜单，就会在该组下生成一个权限点：

* **权限点命名**：`customMenu:visit:<menu_id>`，其中 `<menu_id>` 为自定义菜单的唯一标识。
* **作用**：授予该权限点的成员可以在导航中看到并访问对应的自定义菜单；未授予则该菜单对成员不可见。
* **动态性**：删除自定义菜单后，对应的权限点会随之消失；新增自定义菜单后，需重新进入角色编辑界面将其授予目标角色。

<Warning>
  **自定义菜单权限与预置角色的继承规则不同：**

  * **Admin**：自动继承账户内所有自定义菜单的访问权限，无需任何额外配置。
  * **Responder**：自动包含非管理员专用的自定义菜单权限；标记为管理员专用的菜单不包含在内。
  * **Viewer**：不会自动获得自定义菜单权限。如需让 Viewer 成员访问某个自定义菜单，请在该菜单的角色绑定中显式添加 Viewer。
  * **自定义角色**：自定义角色同样不会自动继承自定义菜单权限，需在菜单的角色绑定中显式授权。
</Warning>

<Tip>
  关于自定义菜单的创建与管理，请在**平台管理 → 自定义菜单**界面进行配置；本节仅描述权限层面的语义。
</Tip>

<Tabs>
  <Tab title="组织管理">
    | 权限点 | 类型 | 说明 |
    | - | - | - |
    | **成员管理** | 管理 | 邀请和移除成员，授予和撤销成员角色 |
    | **角色管理** | 管理 | 创建、编辑和删除角色，管理角色内的权限 |
    | **团队管理** | 管理 | 创建、编辑和删除团队，管理团队成员 |
    | **单点登录查看** | 只读 | 查看单点登录配置信息 |
    | **单点登录管理** | 管理 | 启用或禁用单点登录并修改其配置 |
    | **审计日志查看** | 只读 | 检索和读取操作审计日志 |
    | **API 密钥查看** | 只读 | 查看账户 API 密钥 |
    | **API 密钥管理** | 管理 | 创建、查看、修改和删除账户 API 密钥 |
  </Tab>

  <Tab title="费用中心">
    | 权限点 | 类型 | 说明 |
    | - | - | - |
    | **费用查看** | 只读 | 查看账单、订阅信息、消费记录等付款相关信息 |
    | **费用管理** | 管理 | 管理订阅、充值、开票等费用中心操作 |
  </Tab>

  <Tab title="告警响应">
    | 权限点 | 类型 | 说明 |
    | - | - | - |
    | **协作空间查看** | 只读 | 查看协作空间列表、成员、消息等信息（需同时拥有数据权限） |
    | **协作空间管理** | 管理 | 创建、编辑和删除协作空间，管理成员和配置（需同时拥有数据权限） |
    | **故障查看** | 只读 | 查看故障列表、详情、时间线等信息 |
    | **故障管理** | 管理 | 创建、编辑、处理和关闭故障，管理故障响应流程 |
    | **集成查看** | 只读 | 查看已配置的集成列表和集成详情 |
    | **集成管理** | 管理 | 添加、配置、测试和删除集成（需同时拥有数据权限） |
    | **数据分析查看** | 只读 | 查看故障响应、系统健康等分析报告和统计数据 |
  </Tab>

  <Tab title="配置管理">
    | 权限点 | 类型 | 说明 |
    | - | - | - |
    | **自定义字段查看** | 只读 | 查看自定义字段配置和字段定义 |
    | **自定义字段管理** | 管理 | 创建、编辑和删除自定义字段，配置字段类型和验证规则 |
    | **值班表查看** | 只读 | 查看值班表、轮换规则和值班人员信息 |
    | **值班表管理** | 管理 | 创建、编辑和删除值班表，配置轮换规则和覆盖时段 |
    | **服务日历查看** | 只读 | 查看服务日历、假期安排和特殊时段配置 |
    | **服务日历管理** | 管理 | 创建、编辑和删除服务日历，配置假期和工作日 |
    | **通知模板查看** | 只读 | 查看通知模板、故障模板等模板配置 |
    | **通知模板管理** | 管理 | 创建、编辑和删除模板，自定义模板内容和格式（需同时拥有数据权限） |
    | **映射规则查看** | 只读 | 查看数据映射规则和映射关系配置 |
    | **映射规则管理** | 管理 | 创建、编辑和删除映射规则等（需同时拥有数据权限） |
  </Tab>

  <Tab title="状态页">
    | 权限点 | 类型 | 说明 |
    | - | - | - |
    | **状态页查看** | 只读 | 查看状态页配置、服务状态和历史事件 |
    | **状态页管理** | 管理 | 创建、编辑和发布状态页，管理服务组件和事件 |
    | **状态页事件管理** | 管理 | 发布、编辑和删除状态页中的事件，包括故障和维护 |
  </Tab>

  <Tab title="监控告警">
    | 权限点 | 类型 | 说明 |
    | - | - | - |
    | **监控概览查看** | 只读 | 查看监控概览等 |
    | **告警规则查看** | 只读 | 查看监控告警规则等 |
    | **告警规则管理** | 管理 | 管理监控告警规则等 |
    | **节点权限查看** | 只读 | 查看监控节点权限等 |
    | **节点权限管理** | 管理 | 管理监控节点权限等 |
    | **数据源查看** | 只读 | 查看监控数据源等 |
    | **数据源管理** | 管理 | 管理监控数据源等 |
    | **告警引擎查看** | 只读 | 查看监控引擎等 |
    | **告警引擎管理** | 管理 | 管理监控引擎等 |
    | **实体树查看** | 只读 | 查看监控实体树等 |
    | **实体树管理** | 管理 | 管理监控实体树等 |
  </Tab>

  <Tab title="前端监控">
    | 权限点 | 类型 | 说明 |
    | - | - | - |
    | **应用管理** | 管理 | 创建、配置和管理前端监控应用，设置采样规则和告警策略等 |
    | **性能监控查看** | 只读 | 查看前端性能监控问题等 |
    | **错误追踪查看** | 只读 | 查看前端错误等 |
    | **会话浏览器查看** | 只读 | 查看事件详情等 |
    | **会话回放查看** | 只读 | 查看前端监控会话回放等 |
  </Tab>

  <Tab title="其他">
    | 权限点 | 类型 | 说明 |
    | - | - | - |
    | **快速开始查看** | 只读 | 查看快速开始信息，需具备相关团队、空间、故障、值班和集成的权限 |
  </Tab>
</Tabs>

### 自定义角色

除了预置角色外，您可以创建自定义角色以满足更精细的权限控制需求。

**配置路径**：平台管理 → 角色管理

<Steps>
  <Step title="创建角色">
    进入角色管理页面，点击 **创建角色** 按钮，填写角色名称和描述。您也可以通过复制已有角色快速创建。
  </Step>

  <Step title="编辑角色信息">
    在角色详情页中，点击角色名称或描述旁的 **编辑图标（笔形图标）** 即可直接内联编辑角色名称和描述，修改后自动保存。
  </Step>

  <Step title="配置权限">
    在角色详情页的 **权限列表** 标签下，点击 **编辑** 进入编辑模式。在编辑模式中，您可以通过批量勾选的方式一次性授予或撤销多个权限点，完成后点击 **保存** 即可。
  </Step>

  <Step title="分配成员">
    在角色详情页的 **授权成员** 标签下，点击 **编辑** 进入编辑模式，通过批量勾选的方式添加或移除该角色的授权成员，完成后点击 **保存**。
  </Step>
</Steps>

<Note>
  * 系统预置角色（Admin、Responder、Viewer）不可修改或删除
  * 自定义角色支持编辑、复制、启用/禁用和删除操作
  * 被任一 SSO 配置（SAML2.0 / OIDC / CAS）选为**默认角色**的自定义角色不能删除，强制删除也不行（强制删除只解除成员绑定）。请先在对应的单点登录配置中取消该默认角色；即使 SSO 或角色同步已关闭，也需要先取消
  * 一个成员可以同时拥有多个角色，其权限为所有角色权限的并集
</Note>

### 权限矩阵

| 权限模块 | Admin | Responder | Viewer |
| - | :-: | :-: | :-: |
| **成员管理** | ✔️ | | |
| **角色管理** | ✔️ | | |
| **团队管理** | ✔️ | ✔️ | |
| **单点登录** | ✔️ | | 只读 |
| **操作审计** | ✔️ | ✔️ | |
| **API 密钥** | ✔️ | ✔️ | |
| **费用中心** | ✔️ | | 只读 |
| **协作空间** | ✔️ | ✔️ | 只读 |
| **故障管理** | ✔️ | ✔️ | 只读 |
| **集成管理** | ✔️ | ✔️ | 只读 |
| **数据分析** | ✔️ | ✔️ | 只读 |
| **配置管理**（自定义字段、值班、日历、模板、映射） | ✔️ | ✔️ | 只读 |
| **状态页** | ✔️ | ✔️ | 只读 |
| **监控告警**（概览、告警规则、节点权限、数据源、告警引擎、实体树） | ✔️ | ✔️ | 只读 |
| **前端监控**（应用管理、性能监控、错误追踪、会话浏览器、会话回放） | ✔️ | ✔️ | 只读 |
| **快速开始** | ✔️ | ✔️ | |
| **自定义菜单**（每个菜单独立授权） | 自动继承 | 需显式授权 | 需显式授权 |

## 数据权限

<Note>
  数据权限也叫访问权限，该权限控制用户可以访问或查看的数据范围。
</Note>

<Warning>
  **功能权限是数据权限的前提。** 您必须先拥有对应的功能权限，数据权限才会生效。例如：一个 **Viewer** 角色的成员属于 A 团队，某个协作空间归属于 A 团队且设置为私有，虽然该成员在数据权限上可以访问此空间，但由于 **Viewer** 没有空间管理的功能权限，因此只能查看，不能编辑。
</Warning>

Flashduty **基于团队来控制数据权限**，并应用于以下场景：

| 场景 | 权限说明 |
| - | - |
| **团队管理** | 创建者、主体账号和团队成员可以修改团队信息，以及管理团队成员 |
| **协作空间** | 创建者、主体账号和负责团队成员，可以修改空间的基本信息、降噪配置、分派策略等 |
| **值班管理** | 创建者、主体账号和负责团队成员，可以修改值班的基本信息、轮换规则等 |
| **模板管理** | 创建者、主体账号和负责团队成员，可以修改模板的基本信息、各通道模板配置等 |
| **服务日历** | 创建者、主体账号和负责团队成员，可以修改日历的基本信息、节假日设定等 |
| **集成管理** | 创建者、主体账号和负责团队成员，可以管理集成的配置 |
| **协作空间专属集成** | 主体账号、Admin 角色成员、协作空间创建者和任一管理团队的成员，可以管理该协作空间下的专属集成；协作空间未配置管理团队时，回退为按协作空间所属团队判定 |
| **映射规则** | 创建者、主体账号和负责团队成员，可以管理映射规则的配置 |
| **数据源** | 创建者、主体账号和管理团队成员可以编辑、删除、启停监控告警的数据源、查看连接凭据并修改授权配置；管理团队与只读团队的成员可以查询和引用该数据源；两者都未配置时全租户可读写（存量数据源行为不变） |

<Note>
  **协作空间专属集成与共享集成**：在协作空间下创建的集成（`ref_id` 形如 `c_<channel_id>`）是**专属集成**，其余是**共享集成**，两者的权限口径不同。

  * **功能权限**：专属集成的启停、删除与保存配置，除「集成管理」外，「协作空间管理」也可以操作——两者有其一即可。这是因为「协作空间管理」本身就包含其空间内集成的创建、编辑、删除、启停与轮换 Key。
  * **数据权限**：专属集成按协作空间的**管理团队**判定；协作空间未配置管理团队时按协作空间所属团队判定。共享集成按集成自身的创建者与负责团队判定。
  * **权限不足时**：专属集成仅账户管理员、协作空间创建者或管理团队可以操作；共享集成仅账户管理员、集成创建者或管理团队可以操作。
  * 只有在协作空间中创建的集成才是专属集成；从协作空间打开的共享集成仍按共享集成判定。
</Note>

当您没有对应资源的数据权限时，系统会显示以下提示：

<Frame>
  <img src="https://docs-cdn.flashcat.cloud/images/png/9cd2285155dc7dd72b97c90786506bca.png" alt="权限不足提示" />
</Frame>

## 历史角色迁移

<Warning>
  以下历史预置角色已于 **2026 年 1 月 30 日** 废弃，系统已自动完成迁移。
</Warning>

### 历史角色说明

| 角色 | 说明 |
| - | - |
| `Account.Admin` | 账户管理员，原拥有全部操作权限 |
| `Fin.Admin` | 财务管理员，原拥有费用中心下单权限 |
| `Tech.Admin` | 技术管理员，原拥有访问控制和审计权限（含成员管理） |

### 迁移映射

| 原角色 | 新角色 | 说明 |
| - | - | - |
| `Account.Admin` | **Admin** | 权限保持不变 |
| `Fin.Admin` | **Admin** | 权限提升 |
| `Tech.Admin` | **Responder** | 移除成员管理权限 |
| 无角色 | **Responder** | 自动授予 |
| 自定义角色 | 保持不变 | 可能丢失部分 Monitors 权限，建议自行检查 |

### 兼容性说明

以下场景将自动授予 **Viewer** 角色，确保成员具备基本访问权限：

* 通过 [Open API 邀请新成员](/zh/api-reference/platform/members/member-invite) 时未指定角色
* 通过 **单点登录（SSO）** 自动创建成员时未指定角色

<Warning>
  **兼容期截止日期：2026 年 6 月 30 日**

  届时，未指定角色的 API 请求将返回错误，请提前完成适配。
</Warning>

<Tip>
  自定义角色用户请在升级后检查权限配置，确保符合预期。
</Tip>

## 延伸阅读

<CardGroup cols={2}>
  <Card title="组织管理" icon="users" href="/zh/platform/team-members">
    了解团队和成员的管理方式
  </Card>

  <Card title="单点登录" icon="right-to-bracket" href="/zh/platform/configure-sso">
    配置 SSO 实现统一身份认证
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.