pyodbc.connect() 到 SQL 服务器数据库失败

pyodbc.connect() to SQL Server database fails

我正在尝试通过 pyodbc.connect().

连接到 SQL 服务器数据库

我的连接字符串如下:

connection = pyodbc.connect(
     "DRIVER={SQL Server};SERVER=server;DATABASE=databaseP;UID=user;PWD=password"
)

但它一次又一次地失败,我得到以下错误:

'42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database "database" requested by the login. The login failed. (4060) (SQLDriverConnect)

我试图逃避任何在我看来可能存在的问题(例如 _ 或 @),但无济于事。

在我通过 DSN 输入完全相同的数据并使用以下连接字符串后,它起作用了:

connection = pyodbc.connect(
    dsn="my_dsn",
    uid=user,
    pwd=password
)

第一个连接字符串有什么问题?我宁愿(出于个人原因)使用第一个,但仍然无法找出为什么它不起作用。

如果您连接时未指定数据库,您将连接到登录名的 DEFAULT_DATABASE,通常是 Master。

如果您在连接字符串中指定了一个数据库,您将直接连接到该数据库。如果请求的数据库不存在,或者您无权访问它,则会收到错误消息:“无法打开登录请求的数据库“XXXXX”。登录失败。“