【问题标题】:How to configure Apache Airflow to work with MS SQL Server Windows Authentication如何配置 Apache Airflow 以使用 MS SQL Server Windows 身份验证
【发布时间】:2017-10-07 14:17:58
【问题描述】:

如何使用 Windows 身份验证通过 Airflow Web UI 或修改现有的 SQLAlchemy/pymssql Python 模块连接 MS SQL Server?

我的 SQL Server SSIS 包无法使用此选项 https://joethebusinessintelligenceguy.wordpress.com/2013/08/14/ssis-2012-using-sql-authentication-with-dont-save-sensitive-successfully/),因此我正在尝试使用 Windows 身份验证来启动 SSIS 步骤。

我发现以下链接显示确实存在支持,但我不知道如何在 Airflow 安装(要修改哪个文件或在哪里创建新的 conn_id)实现相同的支持。

【问题讨论】:

  • 这些文章假设您在 windows 上运行 python 代码,其中连接字符串的“受信任的身份验证”部分将获取运行脚本的用户的 windows 登录,或者如果您通过服务运行它,那么该服务帐户名称将用作 Windows 身份验证用户。在 Airflow 的情况下,您在 Linux 上运行,所以它不是直截了当的。你需要 Kerberos 和相当多的设置 easysoft.com/products/data_access/odbc-sql-server-driver/…
  • 对此的更新:我没有解决 Windows 身份验证问题,也没有尝试在我的 Linux 机器上设置 Kerberos 身份验证。相反,我通过将我的 SSIS 包分成新的 SQL Server 作业并通过实现以下代码来启动它们来解决这个问题:s1 = MsSqlOperator( task_id='staging___st_crm_control', sql='EXEC msdb.dbo.sp_start_job ''airflow_crm_ssis'' ;', mssql_conn_id='db2', dag=dag)
  • 很高兴你把它整理出来。听起来 mssql_conn_id 指向 SQL 身份验证的配置,而不是 Windows 身份验证,这是你在做什么?我本来会建议的,但你的问题听起来你没有那个选项。
  • 是的,mssql_conn_id 指向 SQL 身份验证。使用 SQL 身份验证不是理想的解决方案,因为我不知道我的 SSIS 包将运行多长时间。 Airflow 只会报告开始工作需要多长时间。所以在某种程度上你说我没有那个选项是正确的。

标签: python sql-server authentication airflow apache-airflow


【解决方案1】:

要使用 Windows 身份验证,Apache Airflow 将需要与您的 Sql Server 相同的 Windows 访问权限,强烈不建议这样做。

所以可能最好使用用户和密码来连接您的 SqlDatabase。

Apache Airflow 在您的文档中是否有信息可以在此 link 中的 SQL SERVER 中建立连接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多