使用 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
我正在尝试从另一台计算机连接到 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