首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用python为Server执行windows身份验证

无法使用python为Server执行windows身份验证
EN

Stack Overflow用户
提问于 2020-01-28 19:59:51
回答 1查看 907关注 0票数 0

下面显示的Python代码是用来使用Windows身份验证创建Server连接的。我有使用adodbapi库进行数据库连接的约束。

请有人告诉我这段代码中遗漏了什么吗?我参考了库的文档,但没有提到Windows身份验证。

我提到了很多关于这个例外的文章。但它们似乎无助于理解例外的性质及其解决办法。

多步OLE DB操作生成错误.如果可用,请检查每个OLE DB状态值。没有做任何工作。

代码:

代码语言:javascript
运行
复制
import configparser
import adodbapi
config = configparser.ConfigParser()
config.read("C:/plugin/configsql.ini")
_SERVER_NAME = config['SQL']['SERVER_NAME']
_DATABASE = config['SQL']['DATABASE']
conn = adodbapi.connect("PROVIDER=MSOLEDBSQL;Data Source={0};Database={1};Integrated Security = True;".format(_SERVER_NAME,_DATABASE))
print(conn)

例外:

跟踪(最近一次调用):

文件"C:\Arelle-master\venv1\lib\site-packages\adodbapi\adodbapi.py",第113行,在连接中

连接中的"C:\Arelle-master\venv1\lib\site-packages\adodbapi\adodbapi.py",co.connect(kwargs)文件第275行

self.connector.Open() #打开ADO连接

文件"",第3行,在Open中

文件"C:\Arelle-master\venv1\lib\site-packages\win32com\client\dynamic.py",第287行,以ApplyTypes表示

结果=self.oleobj.InvokeTypes(*( LCID,LCID,wFlags,retType,argTypes) + args)

pywintypes.com_error:(-2147352567,“异常发生了。”,(0,'Provider',‘多步OLE DB操作生成错误。如果可用,检查每个OLE DB状态值。没有完成任何工作。’,无,1240640,-2147217887),无)

在处理上述异常的过程中,发生了另一个异常:

回溯(最近一次调用):

文件"winAuthentication.py",第8行

conn = adodbapi.connect("PROVIDER=MSOLEDBSQL;Data Source={0};Database={1};Integrated = True;".format(_SERVER_NAME,_DATABASE)“)

文件"C:\Arelle-master\venv1\lib\site-packages\adodbapi\adodbapi.py",行117,在连接中

引发api.OperationalError(e,消息)

Source=MSSQLSERVER01;Database=TESTDB;Integrated:(-2147352567,‘异常发生了。’,(0,‘提供者’,‘多步OLE DB操作生成错误。如果可用,检查每个OLE DB状态值。没有完成任何工作。’,无,1240640,-2147217887),‘错误打开连接到"PROVIDER=MSOLEDBSQL;Data PROVIDER=MSOLEDBSQL;Data Security =True;’)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-28 20:10:38

你试过Trusted_Connection=yes了吗?下面是我的连接字符串,它使用windows身份验证(使用pyodbc),但应该是相同的连接参数,而不是集成安全性。

代码语言:javascript
运行
复制
conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=ServerName;'
                      'Database=DatabaseName;'
                      'Trusted_Connection=yes;')

或者可能是集成安全性= SSPI,在这里可以找到http://adodbapi.sourceforge.net/quick_reference.pdf

代码语言:javascript
运行
复制
 'Integrated Security=SSPI'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59956145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档