ERP服务器端直接连接SQL客户端,最稳妥的方法是在数据库服务器上启用远程连接,并在防火墙中放行对应端口,然后通过客户端工具使用IP、端口和账号密码进行直连。实际落地时会有不少细节坑,比如实例名解析、身份验证模式、防火墙规则,甚至ERP软件自身的数据库密码加密逻辑,都可能导致你“明明配置对了却连不上”,下面我把这条路完整走一遍,从参数准备到工具实操,再到常见问题排查,每一步都讲透。
先搞清楚你连的是哪种数据库和版本
不同ERP系统配套的数据库千差万别,有的是微软SQL Server,有的是Oracle,还有的是MySQL或PostgreSQL,绝大多数国内主流ERP,比如用友、金蝶、鼎捷等,底层都是SQL Server,所以下文以SQL Server为主场景展开,Oracle和MySQL会单独标注差异。
另外要区分“服务器端”这个词,它可能指:
- 物理机或云主机上的数据库实例本身;
- 也可能是ERP应用服务器与数据库同机部署的整合环境。
无论哪种,只要你想用本地电脑上的SSMS(SQL Server Management Studio)或Navicat等客户端去直连,本质上走的是数据库的远程连接通道。
erp服务器端怎么连sql management studio
如果你已经登录到ERP服务器本机,想在本机用SSMS连数据库,那是最简单的。
确认SQL Server服务已启动
打开“服务”(Win+R输入services.msc),找到类似“SQL Server (MSSQLSERVER)”的服务,确保状态是“正在运行”,如果没启动,右键启动,并建议把启动类型改成“自动”。
用SSMS登录本机实例
打开SSMS,服务器类型选“数据库引擎”,服务器名称填“.”或“localhost”或服务器计算机名,身份验证选“Windows 身份验证”(如果当时装库时没改过认证模式),点击连接即可。
但多数情况下,你不是在服务器跟前操作,而是在自己工位上远程去连,这才是真正有挑战的部分。
从客户端远程直连的完整设置流程
这里假设你用的是SQL Server 2012到2019之间的版本(目前企业存量市场仍以这些为主),客户端是SSMS 18或19。
第一步:确认或修改身份验证模式
SQL Server默认可能只开了Windows身份验证,这意味着你只能用域账号或本机账号来登录,如果你想用“sa”或自定义SQL账号远程登录,得先切到混合模式。
- 在服务器本机用SSMS以Windows身份登录;
- 右键实例名,选择“属性”;
- 在“安全性”页签,选中“SQL Server 和 Windows 身份验证模式”;
- 确定后,需要重启SQL Server服务才能生效。
行业共识认为,这一步是很多人“远程连不上”的头号原因,因为默认Windows认证模式下,客户端用SQL账号登录会直接报18456错误。
第二步:开启SQL Server的TCP/IP协议
装完SQL Server后,默认可能只开启了Shared Memory和Named Pipes,TCP/IP经常是禁用状态,客户端远程访问必须依赖TCP/IP。
- 打开“SQL Server 配置管理器”;
- 找到“SQL Server 网络配置”下的实例协议;
- 双击“TCP/IP”,将其状态改为“已启用”;
- 切到“IP 地址”页签,滚动到最下面的“IPAll”,清空“TCP 动态端口”,在“TCP 端口”里填上1433(默认端口);
- 重启SQL Server服务。
如果你装的是命名实例,那端口号未必是1433,最好在“IPAll”里指定一个固定端口,避免动态端口变化导致客户端连接信息失效。
第三步:防火墙放行端口
服务器如果开了Windows防火墙,外部客户端会被拦截,你需要用管理员权限在PowerShell或CMD里执行下面这行命令,放行1433端口出入站规则:
netsh advfirewall firewall add rule name="SQLServer1433" dir=in action=allow protocol=TCP localport=1433
如果是云服务器(简米云、酷番云、华为云等),除了系统防火墙外,还必须在云控制台的安全组规则里放行1433端口的入方向,很多人忽略了这一层,导致本地防火墙关了也连不上。
第四步:客户端连接参数怎么填
打开SSMS,服务器名称一栏不要只填IP,更稳妥的写法有两种:
- 直接用IP加逗号加端口,192.168.1.100,1433”;
- 如果服务器有命名实例,填“192.168.1.100实例名,端口号”。
身份验证那里选择“SQL Server 身份验证”,输入登录名(比如sa)和密码。
如果ERP系统当时安装时改了默认端口,你就得找当初的实施文档或配置文件确认实际端口,比如用友U8的数据库端口如果被改成2433,你直接填IP就会超时。
第五步:ERP数据库密码的特殊性
这里有一个非常关键的坑:很多ERP系统自己有一套“数据库密码管理”机制,比如用友T+、金蝶K/3 Wise等,在安装时生成的数据库账号密码可能经过强加密,直接拿ERP登录界面的密码去连数据库是无效的。
你需要在ERP的数据库配置工具或系统管理里,找到“数据库服务器”“SA密码”或“系统库账号”等字样的配置项,重置为已知密码,再把这个密码用于客户端连接。
连接失败时的快速诊断路径
如果你按上述步骤做完,还是连不上,不要急着反复重试,按下面这个清单逐项排查,能省下大量时间。
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| 报错“网络相关实例”错误 | 网络不通或端口被防火墙拦截 | 先ping服务器IP,再用telnet测试端口 |
| 报错18456 | 账号密码错误或认证模式不对 | 核对登录名密码,确认是否开启混合认证 |
| 报错“找不到实例” | 实例名称错误或SQL浏览器服务未开 | 确认实例名和端口,固定动态端口 |
| 连接超时 | 安全组未放行或IP写错 | 检查云安全组规则和服务器IP |
在CMD里执行telnet 192.168.1.100 1433,如果黑屏光标停留在左上角,说明端口通;如果提示连接失败,就直接说明TCP层没打通,问题一定出在防火墙、安全组、网段隔离或SQL Server没监听该端口。
用客户端工具操作ERP数据库的注意点
很多小白拿到sa密码后,喜欢直接在ERP数据库里改字段、删记录、调整金额,这是极危险的操作,有几点必须强调:
- 先备份,改动前用SSMS的“任务”->“备份”功能把数据库完整备份一遍;
- 不要动表结构,ERP软件对数据表的关联关系非常敏感,擅自加字段或删索引可能导致程序崩溃;
- 改数据前先查关联表,比如要改采购订单金额,不能只改主表,还要同步子表的税额、含税单价等,否则对账会平不了。
如果你是给外部顾问或临时运维临时开账号,建议仅授予当前数据库的db_datareader和db_datawriter固定数据库角色,不要给sysadmin或sa,最大程度缩小误操作范围。
Q&A
问题:连接erp数据库时提示“不允许远程连接”怎么处理?
打开SSMS,右键服务器实例选“属性”,在“连接”页签里勾选“允许远程连接到此服务器”,同时确认外围应用配置器没有禁用远程连接,这是SQL Server 2005之后的老传统,新版虽然默认多数开启,但某些定制安装仍可能关闭。
问题:用Navicat连SQL Server和用SSMS连有什么区别?
Navicat需要选择SQL Server作为连接类型,填写主机IP或主机名加端口,默认端口也是1433,身份验证选“SQL Server验证”时填账号密码即可,Navicat不支持的SQL Server功能是部分Agent作业和SSIS包管理,如果只想查数据或改业务表,两者没有明显差距。
问题:怎样找到erp数据库服务器地址和实际端口?
在ERP服务器本机执行ipconfig查看IP地址,执行netstat -ano | findstr "1433"确认数据库监听端口,也可以登录SQL Server后执行SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID来直接查当前会话使用的端口。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/628968.html





