gpt4 book ai didi

postgresql - Apache Airflow 数据库后端需要哪些 postgres 权限?

转载 作者:行者123 更新时间:2023-12-03 21:18:31 27 4
gpt4 key购买 nike

关于“初始化后端”(link)的文档中没有提到这一点。

如果我创建一个 airflow_user角色和 airflow架构。如果我授予 airflow_user 是否足够? USAGEairflow架构,然后 SELECT UPDATE INSERT DELETE在所有 table 上?该用户是否需要GRANT ALLairflow 中的所有表上架构?

制作airflow_user更好吗? airflow 的所有者我理解的架构将允许它在该架构内的所有特权,因为它是所有者?

引用:
Postgres GRANT (link)
Postgres 权限 (link)
未回答的 SO 问题 (link)

最佳答案

创建模式是不够的。
架构不是为 AIRFLOW__CORE__SQL_ALCHEMY_CONN 配置的 DSN 值中的可配置选项.
psycopg2 驱动程序依赖的 libpq doesn't allow to configure search_path 作为 DSN 中的额外参数。
最佳实践是为 Airflow 创建一个数据库。
例如,
复制到 create-airflow-db.sql

create database airflow;
create user airflow;
alter user airflow with password 'airflow';
grant all on database airflow to airflow;
在容器中启动数据库服务器。让它在一个单独的终端中运行。
docker run -it --rm \
--publish '5432:5432' \
-v $PWD/create-airflow-db.sql:/create-airflow-db.sql \
--name postgres \
-e POSTGRES_PASSWORD=password postgres:alpine
在不同终端的 SQL 文件中运行查询。
docker exec -ti postgres psql -w -U postgres -d postgres -f create-airflow-db.sql
最后,在新终端中运行 Airflow 服务。
docker run --rm \
-it \
-e 'AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgresql://airflow:airflow@172.17.0.1:5432/airflow' \
--publish '8080:8080' puckel/docker-airflow
您可以连接到数据库服务器并列出表。
➜  airflow docker exec -ti postgres psql -w -U airflow -d airflow
psql (13.1)
Type "help" for help.

airflow=> \dt
List of relations
Schema | Name | Type | Owner
--------+-----------------------+-------+---------
public | alembic_version | table | airflow
public | chart | table | airflow
public | connection | table | airflow
public | dag | table | airflow
public | dag_pickle | table | airflow
public | dag_run | table | airflow
public | dag_tag | table | airflow
public | import_error | table | airflow
public | job | table | airflow
public | known_event | table | airflow
public | known_event_type | table | airflow
public | kube_resource_version | table | airflow
public | kube_worker_uuid | table | airflow
public | log | table | airflow
public | serialized_dag | table | airflow
public | sla_miss | table | airflow
public | slot_pool | table | airflow
public | task_fail | table | airflow
public | task_instance | table | airflow
public | task_reschedule | table | airflow
public | users | table | airflow
public | variable | table | airflow
public | xcom | table | airflow
(23 rows)
在这里,您会看到支持 Airflow 模型的表是在公共(public)架构或搜索路径中创建的。

关于postgresql - Apache Airflow 数据库后端需要哪些 postgres 权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52992104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com