尝试使用 pyodbc 通过 python 连接到 sql server 时出错

2024-03-20

我正在尝试从另一台计算机连接到 sql server。我正在使用以下代码。 odbc 驱动程序已安装,并且 pyodbc 也已安装。

import pyodbc 

server = 'SERVER'
database = 'DBNAME' 
username = 'SA' 
password = 'SQLPWD' 
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

但是我收到以下错误。

Traceback (most recent call last):
File "test.py", line 7, in <module>
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL 
Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
pyodbc.InterfaceError: ('28000', "[28000] [Microsoft][ODBC Driver 17 for SQL Server][SQL 
Server]Login failed for user 'SA'. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC 
Driver 17 for SQL Server][SQL Server]Login failed for user 'SA'. (18456)")

我不确定我哪里出错了,而且旧的问题也没有多大帮助。我是Python新手。


问题可能与以下内容有关:

  • SA 访问已禁用(参考 https://sudeeptaganguly.wordpress.com/2010/04/20/how-to-enable-sa-account-in-sql-server/)
  • 服务器身份验证选择错误(参考 https://sudeeptaganguly.wordpress.com/2010/04/20/how-to-enable-sa-account-in-sql-server/)
  • SQL Server 未开放远程访问(参考 https://knowledgebase.apexsql.com/configure-remote-access-connect-remote-sql-server-instance-apexsql-tools/)

您可以使用SSMS https://learn.microsoft.com/it-it/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15管理您的服务器配置。

重要的:正如 @Larnu 所建议的那样,使用sa用户进行远程访问,创建对数据库和表具有有限访问权限的新用户是管理服务器和保护服务器的更好方法。看一看here https://dba.stackexchange.com/a/39126/215090为了更好地理解。

SA 访问已禁用

要启用它,您必须执行以下操作:

  • 使用 SSMS 连接到您的服务器(使用Windows 身份验证)

  • 打开Security --> Logins部分并双击用户sa

  • 打开页面General type a Password and 确认密码,进入页面Status并设置Login on Enabled.

服务器身份验证选择错误

  • 在对象资源管理器中右键单击服务器实例并打开特性

  • 打开页面Security并检查选项SQL Server 和 Windows 身份验证模式

SQL Server 未开放远程访问

  • 在对象资源管理器中右键单击服务器实例并打开特性

  • 打开页面连接并检查允许远程连接到此服务器

  • 打开你的开始菜单并搜索SQL Server 配置管理器

  • 在下面SQL Server 网络配置 select 协议

  • 双击TCP/IP并滚动到底部,设置TCP Port to 1433

  • 在左侧窗格中SQL Server 配置管理器 click SQL 服务器服务, 右键点击SQL Server,然后单击“重新启动”。

现在问题应该已经解决了,如果还没有解决,请查看 参考资料 中如何向 Windows 防火墙添加规则配置 Windows 防火墙以进行数据库引擎访问 of the 参考 https://knowledgebase.apexsql.com/configure-remote-access-connect-remote-sql-server-instance-apexsql-tools/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试使用 pyodbc 通过 python 连接到 sql server 时出错 的相关文章

随机推荐