Docker容器内Python脚本连接本地SQL Express登录失败求助
Docker容器连接本地SQL Server Express登录失败问题解决
问题详情
运行Docker容器时遇到登录失败错误:
C:\Users\----\Proyectos_Python\Proyectos_de_Prueba\PythonSQL>docker run -it --name cont_pysql --network host -p 1433:1433 pysql WARNING: Published ports are discarded when using host network mode Traceback (most recent call last): File "/app/pythonSQL.py", line 42, in <module> baseinput = pyodbc.connect(conn_str_in) pyodbc.InterfaceError: ('28000', "[28000] [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Login failed for user 'sri***'. (18456) (SQLDriverConnect)")
使用的Python连接代码:
import pyodbc import pandas as pd pyodbc.pooling = False server = '192.***.**.**,1433' #Ethernet Ethernet adapter in ipconfig/cmd bdconsulta = 'pruebas_seba' tablaconsulta = 'dbo.tpruebas1' bddestino = 'pruebas_seba2' tabladestino = 'tpruebas2' user='srive***' password='******' driver = '{ODBC Driver 18 for SQL Server}' conn_str_in = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={server};DATABASE={bdconsulta};UID={user};PWD={password};TrustServerCertificate=yes' baseinput = pyodbc.connect(conn_str_in)
本地Visual Studio Code中使用SRIV****\SQLEXPRESS(Windows身份验证)执行脚本正常,但Docker容器中使用本地IP+SQL身份验证时抛出登录失败异常。
解决步骤
1. 启用SQL Server身份验证模式
- 打开SQL Server Management Studio(SSMS),连接到
SQLEXPRESS实例 - 右键实例 → 属性 → 安全性,选择「SQL Server和Windows身份验证模式」
- 重启SQL Server服务(在服务列表中找到
SQL Server (SQLEXPRESS),右键重启)
2. 验证SQL登录账号状态与权限
- 在SSMS中展开「安全性」→「登录名」,找到
srive***账号 - 右键账号 → 属性 → 状态,确保「登录」选项设置为「启用」
- 切换到「用户映射」标签,勾选目标数据库
pruebas_seba,并赋予必要权限(如db_datareader、db_datawriter)
3. 调整Docker网络与连接字符串
- Windows系统下Docker的
--network host模式兼容性有限,建议改用端口映射模式启动容器:docker run -it --name cont_pysql -p 1433:1433 pysql - 修改Python代码中的
server地址为Docker内置主机域名(自动指向宿主机):server = 'host.docker.internal,1433'
4. 确认SQL Server端口监听设置
- 打开SQL Server配置管理器,展开「SQL Server网络配置」→「SQLEXPRESS的协议」,确保TCP/IP已启用
- 双击TCP/IP → IP地址,拉到最下方的
IPAll区域,确认TCP端口为1433 - 重启SQL Server服务使设置生效
5. 检查Windows防火墙规则
- 打开Windows Defender防火墙,添加入站规则允许
1433端口的TCP连接 - 或者直接将
SQL Server (SQLEXPRESS)服务添加到防火墙允许列表中
内容的提问来源于stack exchange,提问作者SEBASTIAN . RIVEROS PARDO
相关产品推荐
相关产品推荐

