首先,我不是开发人员,所以如果这是一个多余或无益的问题我会道歉。
在Microsoft SQL Server Management Studio中,我可以使用Active Directory通用身份验证连接到某个服务器,但我无法找到使用Python执行此操作的方法。
当我使用该应用程序登录时,在我点击连接后,会弹出Azure登录屏幕,我可以使用我的用户名登录:myname@domain.com和密码。
但是,当我尝试使用pyodbc与以下代码连接时,我收到以下错误:
import pyodbc
def main():
serverName = "name.database.windows.net"
dbName = "DatabaseName"
connection = pyodbc.connect("DRIVER={SQL Server};SERVER=" + serverName +
";DATABASE=" + dbName +
";UID=myname@domain.com;PWD=mypassword")
cursor = connection.cursor()
data = cursor.execute("select * from sometable;")
allData = data.fetchall()
connection.close()
for i in allData:
print(i)
if __name__== "__main__":
main()
pyodbc.ProgrammingError:('42000',“[42000] [Microsoft] [ODBC SQL 服务器驱动程序] [SQL Server]无法打开请求的服务器“域” 登录。 IP地址为“xx.xx.xx.xx”的客户端不允许访问 服务器。要启用访问权限,请使用Windows Azure管理门户 或者在master数据库上运行sp_set_firewall_rule来创建 此IP地址或地址范围的防火墙规则。它可能需要 五分钟让这个改变生效。 (40615) (的SQLDriverConnect); [42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL 服务器
我知道有类似问题的帖子,但我不确定这是同一个问题。我必须为此服务器使用Active Directory通用身份验证。我已经尝试了从pyodbc.drivers()返回的所有SQL Server驱动程序没有运气。我正在使用相同的IP地址通过SQL Server Management Studio登录,就像我通过Python程序尝试它一样。我可以使用不同的模块登录Azure,还是不可能这样做?
作为参考,我在下面通过Microsoft SQL Server Management Studio登录时看到的弹出窗口。我已经坚持了一段时间,所以任何帮助都非常感激。