0

如何使用 Windows 身份验证从运行在 RHEL (Linux) 主机上的 SQLAlchemy 应用程序连接到 SQL Server?

我可以在 SQL Server 中创建一个具有固定密码的专用用户,但在这种情况下,需要从 Cyber​​Ark 获取用户的密码。

一些答案建议使用以下连接字符串:

engine = sqlalchemy.create_engine('mssql://*server_name*/*database_name*?trusted_connection=yes')

但是,这不起作用,因为我需要指定用户的凭据(没有 Windows 会话已经存在)。

其他答案建议使用pymssql,但它在 SQLAlchemy 中已过时,不推荐使用它。我宁愿选择使用mssql+pyodbc.

有任何想法吗?

4

1 回答 1

0

根据要求,这可能是可能的,(只是)但(恕我直言)非常棘手。这取决于: - 支持 Windows 身份验证令牌交换的 sql 库编写器 - 支持 PAM 获取令牌的 sql 库编写器 - 您编写 PAM 模块的能力,该模块将转换cyberark 用户名/密码以检索详细信息。

我不熟悉 python 或那些 SQL 库,但我会说,即使身份验证方法适用于 Windows,我使用其他跨平台库连接到 SQLServer 的经验是,除了直接身份验证之外,它们往往缺少任何东西。

您可能会很幸运,因为 MS 向 SQLServer 添加了受信任的身份验证,但请注意他们还没有。

即使当前的建议(我认为)也不符合您的要求https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/using-integrated-authentication?view=sql-server- ver15 他们还从那里链接回已弃用的内容(https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/using-integrated-authentication?view=sql-server-ver15)讨论可用方法的选项和限制。

我建议您最好的方法可能是检查您是否可以在 CryptoArk 中存储 SQL 身份验证字符串并使用它。

于 2020-05-05T08:24:02.770 回答