You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建Airflow只读用户?Airflow 1.9是否支持该功能?

创建Airflow只读用户及版本兼容性说明

首先明确:Airflow 1.8和1.9版本都没有原生的只读用户功能——你提到的那个关于只读用户的讨论是针对Airflow 2.0的规划,这个特性直到2.0才正式纳入核心功能,所以早期1.x系列版本都不支持原生的只读角色。

如果你现在用的是Airflow 1.8,想要实现类似只读用户的效果,可以试试这几个方案:

  • 自定义数据库级别的权限配置
    Airflow 1.8基于Flask-Admin实现后台管理,权限系统依赖数据库中的角色和权限表。你可以手动创建一个只读角色并分配仅查看类的权限:

    1. 连接到Airflow的元数据库(比如PostgreSQL/SQLite)。
    2. 在ab_role表中插入新角色,比如执行INSERT INTO ab_role (name) VALUES ('ReadOnly');。
    3. 查询ab_permission表,筛选出所有以can_view开头的权限(比如can_view_dag, can_view_taskinstance, can_view_log等),记录这些权限的id。
    4. 在ab_role_permission表中,将新角色的id和这些只读权限的id关联起来,比如执行INSERT INTO ab_role_permission (role_id, permission_id) VALUES (角色ID, 权限ID);。
    5. 创建新用户时,将这个ReadOnly角色分配给用户即可。
  • 通过反向代理拦截操作接口
    用Nginx这类反向代理服务器,对Airflow中涉及修改/操作的接口做访问限制:

    • 比如拦截/admin/dag/*/edit/(编辑DAG的接口)、/trigger_dag(触发DAG的接口)等,只允许管理员IP访问;
    • 普通只读用户只能访问/admin/dag/(DAG列表)、/admin/taskinstance/(任务实例查看)这类纯查看页面。
  • 尝试社区插件增强权限
    有些社区开发的插件可以给Airflow 1.x添加更精细的权限控制,比如airflow-access-control,不过要注意找适配Airflow 1.8的版本,安装前最好先在测试环境验证兼容性。

另外,如果你们有升级计划,Airflow 2.0及以上版本的权限系统(基于Flask-AppBuilder)原生支持角色管理,自带的Viewer角色就是完整的只读权限,创建用户时直接分配这个角色就搞定,比1.x版本的方案省心太多。

内容的提问来源于stack exchange,提问作者Kunal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:11:52