使用TypeORM创建Langchain与本地SQL Server连接时登录失败问题排查
解决SQL Server Windows身份验证连接失败的问题
你遇到的Login failed for user ''错误,是因为当前代码配置的是SQL Server身份验证,但你想使用Windows凭据(集成身份验证),两种验证方式的配置逻辑完全不同。
错误原因
当你留空username和password时,Langchain依赖的TypeORM会尝试用空用户账户登录SQL Server,而Windows身份验证不需要手动提供用户名密码,它依赖运行Node.js进程的当前Windows账户权限来完成身份校验。
修正后的配置代码
要启用Windows身份验证,需要在extra配置中添加integratedSecurity: true,同时可以移除无用的username和password字段:
const datasource = new DataSource({ type: 'mssql', host: 'localhost', database: 'DB', logging: true, extra: { trustServerCertificate: true, integratedSecurity: true // 开启Windows集成身份验证 }, }); const db = await SqlDatabase.fromDataSourceParams({ appDataSource: datasource });
额外检查项
- 确保运行Node.js的Windows账户拥有访问目标SQL Server数据库的权限
- 确认SQL Server实例已启用Windows身份验证模式(可在SQL Server Management Studio的服务器属性→安全性中查看)
- 若使用的是
tedious驱动,需额外安装msnodesqlv8依赖包:npm install msnodesqlv8
内容的提问来源于stack exchange,提问作者user34534
相关产品推荐
相关产品推荐

