grafana通过organization+权限控制+数据源绑定实现逻辑完全隔离:一、用organization划分部门,各组织独享用户、数据源、仪表盘等资源;二、严格绑定用户至单一组织并禁用跨组织访问;三、数据源与仪表盘均限定在组织内,不支持全局共享;四、对接ldap/oauth按部门组自动分配组织及角色。

Grafana 本身不提供“物理隔离”的存储层,但通过 Organizations(组织) + 权限控制 + 数据源绑定策略,可以实现逻辑上完全隔离的监控看板环境——不同部门无法互相查看、编辑、甚至发现彼此的存在。这种隔离在绝大多数企业级场景中已等效于物理隔离。
一、用 Organization 划分部门边界
Grafana 的 Organization 是多租户最基础、最稳定的单元。每个 Organization 拥有独立的:
- 用户成员列表(可跨组织复用账号,但权限不互通)
- 数据源(Data Sources),仅本组织内可见、可配置
- 仪表盘(Dashboards)、文件夹(Folders)、告警规则、变量等全部资源
- API 访问上下文(所有 API 请求需携带 org ID 或切换 org 上下文)
操作路径:Grafana 管理员后台 → ⚙️ Settings → Organizations → “New organization” → 输入部门名称(如 “Finance-Prod”、“DevOps-Staging”)→ 创建。
二、严格绑定用户与组织,禁用跨组织访问
默认情况下,新用户只属于一个组织(通常是 Default Org),但管理员可手动为其添加多个组织。为确保隔离,应:
- 为每个部门创建专属组织,且不将同一用户加入多个业务部门组织
- 关闭非管理员创建组织权限(防止越权):修改
grafana.ini中[users]段落:allow_sign_up = false和auto_assign_org = false;再设[auth]下disable_login_form = true(若对接 LDAP/OAuth) - 登录后,用户只能看到自己所属组织的侧边栏菜单和仪表盘入口;切换组织需主动点击右上角头像 → “Switch organization” —— 若只在一个组织中,该选项不会出现
三、数据源与仪表盘必须限定在组织内
这是隔离生效的关键一步。Grafana 明确规定:
- 数据源默认仅对创建它的 Organization 可见;即使两个组织配置了相同 URL 的 Prometheus,它们也是两个独立实体,凭证、设置、缓存互不影响
- 仪表盘保存时自动绑定当前 Organization;跨组织复制需导出 JSON 后手动导入到目标组织,且需重新绑定对应的数据源
- 不支持“全局共享数据源”或“跨组织仪表盘引用”——这正是实现隔离的设计前提
建议实践:为每个部门部署独立的监控采集栈(如 Grafana Agent 实例 + 租户标签),并在其 Organization 内配置带 X-Scope-OrgID(对接 Mimir/Phlare)或 tenant_id(对接 Loki)的数据源,进一步强化后端服务层的租户语义。
四、配合外部认证统一纳管,避免账号混乱
当公司已有 LDAP、OAuth 2.0 或 SSO 体系时,可通过以下方式维持组织隔离:
- 在 OAuth 配置中启用
auto_assign_org_id,并结合org_role字段,根据用户所属部门组(如 AD Group “CN=DevOps,OU=Groups”)自动分配进对应 Organization 并赋予 Viewer/Editor 权限 - 若使用多个 OAuth App(如各团队独立申请的 GitHub App),则必须为每个团队部署独立 Grafana 工作区(见官方计费版型说明),因为单实例 Grafana 仅支持一套 OAuth 配置
- 所有用户密码、MFA、会话生命周期均由外部系统控制,Grafana 仅做角色映射,降低本地运维风险










