使用pyodbc在Python中访问SQL数据库时出现“请更新浏览器错误”

0 投票
1 回答
91 浏览
提问于 2025-04-13 14:32

我正在尝试用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服务器,不会再出现错误了。

这里插入图片描述

想了解更多信息,可以参考这个 微软的问题页面

撰写回答