You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用node-mssql连接MSSQL失败:'Labo'登录失败ELOGIN问题

解决node-mssql连接SQL Server时的"Login failed for user 'Labo'"问题

首先可以明确:这个大小写差异大概率不是node-mssql的bug,更可能是SQL Server端的配置或代码里的连接参数冲突导致的,下面一步步帮你排查:

1. 检查SQL Server的身份验证模式

如果你的SQL Server实例设置为仅Windows身份验证,那么用SQL账号(比如labo)登录肯定会失败。你可以打开SQL Server Management Studio(SSMS),右键实例→属性→安全性,确认选中的是SQL Server和Windows身份验证模式,如果不是,修改后重启SQL Server服务。

2. 确认登录名的大小写与存在性

SQL Server的登录名是否区分大小写,取决于实例的排序规则(比如SQL_Latin1_General_CP1_CS_AS是区分大小写的,_CI_AS则不区分)。你可以在SSMS里展开实例→安全性→登录名,看看实际存在的是labo还是Labo:

  • 如果服务器端是Labo,而你代码里用小写labo,当排序规则区分大小写时,就会触发登录失败,报错里显示的是服务器端实际存在的登录名。
  • 如果服务器端两者都不存在,那你需要先创建对应的SQL登录名,并赋予访问DATA数据库的权限。

3. 修复连接参数的冲突

你的代码里同时指定了port: 1433和dialectOptions.instanceName: "SQLEXPRESS",这会导致冲突:

  • 默认情况下,SQL Server Express实例(SQLEXPRESS)使用的是动态端口,不是固定的1433(1433是默认实例的端口)。
  • 你要么移除port参数,让node-mssql通过实例名自动发现端口;要么在SQL Server配置管理器里找到SQLEXPRESS的TCP/IP端口,把代码里的port改成对应的数值,同时移除instanceName参数。

修改后的配置示例(二选一):

方式一:用实例名自动找端口

const sql = require("mssql"); 
var sqlconfig = { 
    server:"192.168.200.5", 
    database:"DATA", 
    user: "labo", // 或者改成服务器端实际的"Labo"
    password: "*********", 
    connectionTimeout: 30000, 
    dialect: "mssql", 
    dialectOptions: { "instanceName": "SQLEXPRESS" }, 
}; 

方式二:指定正确的端口

const sql = require("mssql"); 
var sqlconfig = { 
    server:"192.168.200.5", 
    database:"DATA", 
    user: "labo", // 或者改成服务器端实际的"Labo"
    password: "*********", 
    connectionTimeout: 30000, 
    port: 1434, // 替换成SQLEXPRESS实际的TCP端口
    dialect: "mssql", 
}; 

4. 验证账号权限与密码

  • 确认labo(或Labo)账号已启用:在SSMS里右键登录名→属性→状态,确认"登录"选项是"启用"。
  • 确认账号有权限访问DATA数据库:右键登录名→属性→用户映射,勾选DATA数据库,并赋予对应的角色(比如db_datareader)。
  • 仔细核对密码:SQL Server的密码是区分大小写的,确保代码里的密码和服务器端设置的完全一致。

关于报错里的"Labo"

报错信息里显示的用户名是服务器端返回的,通常是因为你代码里的用户名与服务器端实际存在的登录名不匹配(比如大小写),或者连接到了错误的实例(那里存在Labo账号),这不是node-mssql的bug,而是服务器端的验证反馈。

内容的提问来源于stack exchange,提问作者T.Dong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:12:49