我有一个问题,尝试通过pyodbc.connect调用我的uid和密码。
这是我的odbc.ini文件:
[my_dsn]
Driver= SQL Server
Server=my_server
User=uid_reader
Password=password_reader
MultiSubnetFailover=Yes
Database=master
当我硬编码时,它可以完美地工作并连接。
test_uid = 'uid_reader'
test_password = 'password_reader'
conn = pyodbc.connect(r'DSN=my_dsn;UID={a};PWD={b}'.format(a=test_uid,b=test_password))
当我从odbc.ini中调用我的dsn变量时,它无法工作。
conn = pyodbc.connect(r'DSN=my_dsn;UID=User;PWD=Password')
错误:('28000',"[28000] [unixODBC][Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'User'. (18456) (SQLDriverConnect)")
我想在odbc.ini文件中隐藏密码,这样当我调用pyodbc.connect时,密码就不会显示出来。
User
被用作 UID 的值。如果在连接字符串中不指定用户和密码会发生什么? - mhawkeconn = pyodbc.connect(r'DSN=my_dsn;UID=User;PWD=Password')
似乎应该使用my_dsn
、User
和Password
的字面字符串值。我的理解是,你应该像在硬编码版本中那样进行字符串格式化,但是不要指向变量,而是指向加载的配置。 - r.ook