使用 pyodbc 尝试使用 python 连接到 sql 服务器时出错

Error while trying to connect to sql server with python using pyodbc

我正在尝试从另一台计算机连接到 sql 服务器。我正在使用以下代码。安装了 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.

的新手

问题可能与:

您可以使用 SSMS 来管理您的服务器配置。

重要:正如@Larnu 所建议的,使用sa 用户进行远程访问不是一个好主意,创建对数据库具有有限访问权限的新用户 & table 是管理服务器和保护服务器的更好方法。看看 here 以便更好地理解。

SA 访问已禁用

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

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

  • 打开 安全 --> 登录 部分并双击用户 sa

  • 打开页面常规输入密码确认密码 , 进入 Status 页面并将 Login 设置为 Enabled.

错误的服务器身份验证选择

  • 在服务器实例上的对象资源管理器right-click中,打开属性

  • 打开页面安全并检查选项SQL服务器和Windows身份验证模式

SQL服务器未开放远程访问

  • 在服务器实例上的对象资源管理器right-click中,打开属性

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

  • 打开 开始菜单 并搜索 SQL 服务器配置管理器

  • SQL服务器网络配置下select[=25的协议=]

  • Double-Click on TCP/IP 然后滚动到按钮,设置 TCP 端口1433

  • SQL 服务器配置管理器 的左窗格中单击 SQL 服务器服务, right-click SQL 服务器,然后单击重新启动。

现在问题应该已经解决了,如果没有,请查看为数据库引擎访问配置Windows防火墙部分中的如何向windows防火墙添加规则reference