当连接字符串中提供 none 时,pyodbc 从哪里获取其用户和密码
Where does pyodbc get its user and pwd from when none are provided in the connection string
我继承了一个项目,但在尝试与数据库交互时似乎遇到了权限问题。基本上我们有一个分离和删除的两步过程。
有谁知道如果连接字符串只有 driver、服务器和数据库名称,用户会从哪里来。
编辑
我使用 Windows Server 2008 标准
编辑
"DRIVER={%s};SERVER=%s;DATABASE=%s;" 其中 driver 是 "SQL Server"
既然你在 Windows,你应该知道一些事情:
使用 Driver={SQL Server}
仅启用功能和数据类型
SQL Server 2000 支持。对于 2005 年之前的功能,请使用 {SQL
Native Client}
,对于 2008 年之前的功能,请使用 {SQL Server
Native Client 10.0}
.
要查看您的 ODBC 连接,请转到“开始”并搜索 "ODBC",然后
调出 Data Sources (ODBC)
。这将列出用户、系统和文件
GUI 中的 DSN。您应该找到带有用户名和密码的 DSN
填在那里。
我刚刚做了一些测试,如果连接中省略了 Trusted_connection
和 UID
选项,{SQL Server}
ODBC 驱动程序显然默认使用 Windows 身份验证细绳。因此,您的 Python 脚本必须使用用户 运行 脚本的 Windows 凭据连接到 SQL 服务器实例。
(另一方面,{SQL Server Native Client 10.0}
驱动程序似乎默认使用 SQL 身份验证,除非 Trusted_connection=yes
包含在连接字符串中。)
我继承了一个项目,但在尝试与数据库交互时似乎遇到了权限问题。基本上我们有一个分离和删除的两步过程。
有谁知道如果连接字符串只有 driver、服务器和数据库名称,用户会从哪里来。
编辑 我使用 Windows Server 2008 标准 编辑 "DRIVER={%s};SERVER=%s;DATABASE=%s;" 其中 driver 是 "SQL Server"
既然你在 Windows,你应该知道一些事情:
使用
Driver={SQL Server}
仅启用功能和数据类型 SQL Server 2000 支持。对于 2005 年之前的功能,请使用{SQL Native Client}
,对于 2008 年之前的功能,请使用{SQL Server Native Client 10.0}
.要查看您的 ODBC 连接,请转到“开始”并搜索 "ODBC",然后 调出
Data Sources (ODBC)
。这将列出用户、系统和文件 GUI 中的 DSN。您应该找到带有用户名和密码的 DSN 填在那里。
我刚刚做了一些测试,如果连接中省略了 Trusted_connection
和 UID
选项,{SQL Server}
ODBC 驱动程序显然默认使用 Windows 身份验证细绳。因此,您的 Python 脚本必须使用用户 运行 脚本的 Windows 凭据连接到 SQL 服务器实例。
(另一方面,{SQL Server Native Client 10.0}
驱动程序似乎默认使用 SQL 身份验证,除非 Trusted_connection=yes
包含在连接字符串中。)