使用pyodbc在Python中访问SQL数据库时出现“请更新浏览器错误”
我正在尝试用Python访问SSMS数据库。需要注意的是,SSMS登录所需的认证方式是多重身份验证(MFA)——“Azure Active Directory - Universal with MFA”。我写的简单代码如下:
import pandas as pd
import numpy as np
import sqlalchemy
import pymssql
import pyodbc
DRIVER = "ODBC Driver 17 for SQL Server"
SERVERNAME = "some.server.name.database.windows.net"
AUTHENTICATION='ActiveDirectoryInteractive'
DB = "SOME_DB"
connection_str = f'DRIVER={DRIVER};SERVER={SERVERNAME},1433;DATABASE={DB};PWD=;Encrypt=yes;Authentication=ActiveDirectoryInteractive;UID=;TrustServerCertificate=no;'
cnxn = pyodbc.connect(connection_str)
cursor = cnxn.cursor()
query_string = '''
select top(10) * from smth.other
'''
df = pd.read_sql(query_string, connection_str)
df
当我运行这段代码时,会跳转到登录页面,我在这里输入我的账号和密码。但是,当我点击“下一步”时,出现了以下情况:
我该如何解决这个问题呢?我希望窗口能显示一个地方让我输入我的MFA信息。
1 个回答
0
要解决上面的错误,你可以按照以下步骤操作:
- 用你的全局管理员账号登录Edge浏览器。然后,尝试使用AD MFA认证连接到SQL服务器。
- 访问网址 mysignins.microsoft.com,然后用你的账号登录。登录后,你会看到一个验证页面,需要点击确认。这就像是对你MFA设置的一个验证。点击确认后,你就可以返回并用这个账号登录了。
这样,你就可以顺利地使用AD MFA认证连接到SQL服务器,不会再出现错误了。
想了解更多信息,可以参考这个 微软的问题页面。