【问题标题】:Accessing Microsoft SQL Server using Windows authentication on a Mac in Python使用 Python 在 Mac 上使用 Windows 身份验证访问 Microsoft SQL Server
【发布时间】:2017-06-01 12:39:53
【问题描述】:

我无法确定通过 Mac 上的 Windows 身份验证访问 SQL Server 数据库所需的配置步骤和代码。

在 Windows 机器上,我可以使用以下代码:

import getpass

import pypyodbc

cnxn_string = (r"DRIVER={ODBC Driver 13 for SQL Server};"
               r"SERVER=[Host]\[Instance];"
               r"DATABASE=[Database]"
               r"UID=[Domain]\[Username];"
               r"Trusted_Connection=yes;"% (getpass.getuser()))

cnxn = pypyodbc.connect(cnxn_string)

但在 Mac 上,我认为我需要重新输入我的用户名和密码。

如何在我的 Mac 上通过 Windows 身份验证创建与 SQL Server 的类似 python 连接?我对任何 python 模块都开放(它不必是 pypyodbc)。

【问题讨论】:

  • mac在同一个AD?
  • 我相信是这样,因为我可以使用数据库客户端 (DBVisualizer) 从我的 mac 访问数据库,但是在客户端中我需要重新输入我的用户名和密码并选择“Windows " 身份验证方法。

标签: python sql-server macos windows-authentication


【解决方案1】:

使用 FreeTDS + pymssql 连接起来非常简单。

注意:我建议使用 FreeTDS 1.0+ 和 pymssql 2.2.0+,因为有 compatibility issues with FreeTDS 1.0 and pymssql 2.1.3.

这是一个使用 pymssql 的示例:

import pymssql
pymssql.connect(server="myserver\\myinstance",
                user="mydomain\\myuser",
                password="mypassword",
                database="mydatabase")

注意:实例是使用反斜杠字符从服务器解析的,但我们需要对其进行转义,因为这也是转义字符。从用户解析 Active Directory 域也是如此。

【讨论】:

  • 太棒了。据我所知,这不适用于 pypyodbc
  • @mgoldwasser 你说我们应该使用 pymssql 2.2.0+ 版本。我检查了最新版本:pymssql.org/en/stable/changelog.html,它是 2.1.4。这个版本好吗?我在连接过程中遇到问题(pymssql 2.1.4,freeTDS 1.00.111)。连接时出错:Net-Lib error during Operation timed out (60)\n').
  • 嗯,我猜他们从项目 GitHub 中删除了 2.2.0+ 分支。我不知道为什么......
猜你喜欢
  • 1970-01-01
  • 2012-06-29
  • 2023-03-05
  • 1970-01-01
  • 2023-03-19
  • 2011-04-10
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
相关资源
最近更新 更多