【问题标题】:pymssql: How to use windows authentication when running on a non-windows boxpymssql:在非 Windows 机器上运行时如何使用 Windows 身份验证
【发布时间】:2014-02-14 07:08:27
【问题描述】:

有没有办法让 python 使用 Windows 身份验证 连接到 MS SQL Server,即使没有在 windows 盒子上运行 python 应用程序

我正在尝试使用 pymssql 执行此操作,但这些示例似乎大多假设您在 Windows 上运行。

如果有办法使用其他库建立这种连接,请随时提出建议,但我确实喜欢通过 pip 轻松安装和部署 pymssql。

我想连接到 2005/2008 数据库,并且我正在运行 Ubuntu 13.04(但如果有影响,我可以升级到更高版本的 Ubuntu)

解决方案:

事实证明,pymssql 可以通过我的 windows 用户名和密码连接到我的数据库。但要这样做,我需要像这样传递实际的用户名/密码:

pymssql.connect(host, 'THEDOMAIN\\theusername', 'thepassword', db)

EkoostikMartin 提供的解决方案仍然很好(如果您不想在某处存储密码,这可能是 Windows auth 的重点)

【问题讨论】:

  • 我认为这仍然需要将 SQL Server 配置为允许“混合”身份验证——没有 Kerberos 令牌,即使凭据相同,您也没有使用集成 Windows 身份验证。
  • 在 Windows 10 中,该密码可能是您的整个 microsoft 帐户密码。最好使用自定义密码启用sa 用户,而不是使用您的微软帐户。

标签: python sql-server pymssql


【解决方案1】:

您可以使用适用于 linux 的 SQL Server ODBC 驱动程序,并设置 Kerberos。

查看这篇文章 - http://technet.microsoft.com/en-us/library/hh568450.aspx

【讨论】:

  • 这其实很简单——我安装了pyodbc python包,然后像这样连接到SQL Server:pyodbc.connect("Driver={SQL Server};Server=servername\instancename;Trusted_Connection=yes;database=databasename")
猜你喜欢
  • 2015-06-03
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2021-02-19
  • 2017-12-31
相关资源
最近更新 更多