如何在 Python 上使用 Windows Auth 登录 MSSQL?

Posted

技术标签:

【中文标题】如何在 Python 上使用 Windows Auth 登录 MSSQL?【英文标题】:How do I log into MSSQL using Windows Auth on Python? 【发布时间】:2017-03-14 14:52:21 【问题描述】:

我已经尝试了 pypyodbc 和 pymssql,但都没有使用 Windows 身份验证。 有任何想法吗?当我同时使用用户名和密码时,我可以登录,但我不想这样做。我想使用 Windows 身份验证。

我实际上只能让 pypyodbc 工作。使用 pymssql 时出现不同的连接错误。我用谷歌搜索了不同的例子,但它们不起作用。我想我没有为用户名或其他东西使用正确的格式。我是否必须在其中输入“DomainName\myusername”而不仅仅是我的用户名?我试过这个没有运气。

如何将其转换为 Windows Auth 登录?

import pypyodbc
connection = pypyodbc.connect('Driver=SQL Server;'
                                'Server=IPaddresshere;'
                                'Database=PythonTest;'
                                'uid=myuser;pwd=mypass')

cursor = connection.cursor() 
SQLCommand = ("SELECT FirstName, LastName, UID "      
    "FROM dbo.member "
    "WHERE UID = ?")
Values = [2]
cursor.execute(SQLCommand,Values)
results = cursor.fetchone()
# note: UID column is an integer.  You can't normally take an integer and place it in a string.
# so you must add str(results[2])
print("Employee " + results[0] + " " + results[1] + " ID is " + str(results[2]))
connection.close()

【问题讨论】:

【参考方案1】:

如果您想使用 Windows 身份验证,您的连接字符串应如下所示:

Driver=SQL Server;'
'Server=IPaddresshere;'
'Database=PythonTest;'
'Trusted_Connection=True;'

【讨论】:

【参考方案2】:

尝试设置可信连接:

pyodbc.connect(r'Driver=SQL Server;Server=DBINSTANCE;Database=myDB;Trusted_Connection=yes;')

【讨论】:

以上是关于如何在 Python 上使用 Windows Auth 登录 MSSQL?的主要内容,如果未能解决你的问题,请参考以下文章

pr音频不能在au中编辑?

如何在Windows上使用Python for .NET进行多处理?

如何使 APK 在 WINDOWS 上独立于 Kivy 和 python?

如何使用 InstallShield 在 Windows 上最好地安装 Python + 模块

如何在 Python 上使用 Windows Auth 登录 MSSQL?

如何使用 Python 2.7 在 Windows 上修复 pip 安装证书问题? [复制]