我正在尝试使用pyodbc登录Azure sql server,它会将我登录到主数据库,而不是像我在连接字符串中提供的'xyzdb‘这样的userdb。这个问题的解决方案似乎变成了一种基于DSN较少的登录,需要在windows机器上配置dsn。但我需要从Azure webjob作业运行pyodbc连接的python脚本,因此配置dsn是不可能的。因此不能按预期使用用户数据库。有什么解决方案吗?在登录到master db之后,我想用"USE xyzdb;“改成用户db;而azure Sql server回应的sql命令是'USE be with be USE to switch user‘,因此xyzdb登录不能。我被卡住了:)。
发布于 2018-12-01 13:42:32
我用xyzdb数据库制作了azure sql服务器。然后我尝试了新创建的服务器的连接字符串: pyodbc.connect('Driver={ ODBC Driver 13 for SQL Server};Server=tcp:abc.database.windows.net,1433;Database=xyzdb;Uid=ur_username;Pwd=ur_password;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;')
此连接字符串将我登录到masterdb,而不是xyzdb。而且,由于Sql server在物理上是在数据中心的堆栈中维护的,所以互连并不总是可行的,除非使用像池弹性这样的东西。因此,来自master DB的'USE xyzdb;‘Sql语句提供了'USE不能用于在数据库之间切换’。
3天来,我尝试了其他方法,但都不起作用,所以我发布了我尝试连接字符串的question.Then:
Pyodbc.connect(‘Driver={用于SQL Server};Server=tcp:abc.database.windows.net,1433;Uid=ur_username;Pwd=ur_password;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;Database=xyzdb的ODBC驱动程序13’)
移动字符串末尾的数据库字段,认为它将首先与服务器建立连接,然后它将我登录到数据库xyzdb,它将我登录到xyzdb database.It本身第一次工作。
现在,如果我尝试上面的两个字符串中的任何一个,它都能按预期工作。不知道issue?.Looks是什么,我也浪费了别人的时间:)。我们可以删除我假设的问题,因为我可以登录userdb。谢谢。
https://stackoverflow.com/questions/53550998
复制相似问题