Fabric Lakehouse - Python - pyodbc - 连接错误

问题描述 投票:0回答:1

我尝试按照下面的代码在 VS 代码中使用 python 连接到 Fabric Lakehouse。我访问了许多与“08001”错误相关的其他来源,但这个问题不断出现。


server = 'tcp:myserver.database.windows.net'. # fabric lakehouse sqlendpoint

database = 'mydb'

username = 'myusername'

pass1 = 'xxxx'

auth = 'ActiveDirectoryPassword'


cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';Authentication='+auth+';UID='+username+';PWD='+pass1+';ENCRYPT=yes;Trusted_Connection=yes')

cursor = cnxn.cursor()

错误信息:

“操作错误:('08001','[08001] [Microsoft][适用于 SQL Server 的 ODBC 驱动程序 17]命名管道提供程序:无法打开与 SQL Server [53] 的连接。(53) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 17 for SQL Server]登录超时已过期 (0)“

任何帮助将不胜感激。

python-3.x visual-studio-code pyodbc azure-service-fabric
1个回答
0
投票
OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53]. (53) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) 

当网络不允许连接到服务器时,您可能会收到上述错误。确保您的网络允许连接服务器。根据MS文档

仅支持 Microsoft Entra 多重身份验证 (MFA)。

因此,当您连接到服务器时,请使用

ActiveDirectoryInteractive
选项而不是
ActiveDirectoryPassword
进行身份验证,如以下代码中所述:

import pyodbc
server = 'tcp:<serverName>.database.windows.net' # fabric lakehouse sqlendpoint
database = '<dbName>'
username = '<v-id>'
auth = 'ActiveDirectoryInteractive'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';Authentication='+auth+';UID='+username+';ENCRYPT=yes;')
cursor = cnxn.cursor() 

运行上述代码时,会打开新窗口进行身份验证,完成身份验证后即可连接成功,如下所示:

enter image description here

更多信息可以参考MS文档

© www.soinside.com 2019 - 2024. All rights reserved.