尝试使用繁琐的连接和 Windows 身份验证连接到 SQL 服务器?

Posted

技术标签:

【中文标题】尝试使用繁琐的连接和 Windows 身份验证连接到 SQL 服务器?【英文标题】:Trying to connect to SQL server using Tedious Connection and Windows Authentication? 【发布时间】:2019-01-23 22:33:00 【问题描述】:

我正在尝试使用繁琐的连接池和 Windows 身份验证连接到 SQL 服务器。但我得到一个错误:

消息:'用户\'\'登录失败。',代码:'ELOGIN'

我不确定我做错了什么。我用的是最新版的繁琐。

.env 文件

SQL_SERVER=localhost
SQL_UNAME=Username
SQL_PSWD=Password
SQL_DB=DatabaseName
SQL_DOMAIN=US

dbController.js

const Request = require('tedious');
const TYPES = require('tedious').TYPES;
const ConnectionPool = require('tedious-connection-pool');
const dbConfig = require('./dbconfig');

const poolConfig = 
    min: 1,
    max: 1,
    log: true
;

let _rows = [];
const pool = new ConnectionPool(poolConfig, dbConfig);

pool.on('error', (err) => 
    console.log(err);
);

dbConfig.js

const dotenv = require('dotenv');
dotenv.config();

module.exports = 
    server: process.env.SQL_SERVER,
    options: 
    instanceName: 'SQLEXPRESS',
    encrypt: false,
    database: process.env.SQL_DB,
    rowCollectionOnDone: true,
    useColumnNames: true
    ,
    authentication: 
        type: 'ntlm',
        options: 
            userName: process.env.SQL_UNAME,
            password: process.env.SQL_PSWD,
            domain: process.env.SQL_DOMAIN
        
   
;

【问题讨论】:

当我在没有 .env 文件的情况下手动输入名称时,它仍然无法工作 github.com/tediousjs/node-mssql/issues/311 【参考方案1】:

问题是tedious-connection-pool 使用的是tedious 版本1 而不是tedious 版本9。

我希望根据我发现从未在上游合并的 PR 使用 tedious-connection-pool2 解决这个问题。

所以,等一天,找到我的 tedious-connection-pool2 并使用应该可以工作的 overrideTedious 选项。

【讨论】:

以上是关于尝试使用繁琐的连接和 Windows 身份验证连接到 SQL 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

SQL2005, 在连接数据库引擎时,用windows身份验证时可以正常连接上,但是用Sql身份验证就连接不上。

无法使用带有 Windows 身份验证的 pymssql 进行连接

使用 pyspark 对 SQL Server JDBC 使用 Windows 身份验证

数据库本地连接失败,错误代码18456怎么解决?

经典 ASP - 使用 Windows 身份验证的 SQL Server 2008 连接字符串

Windows身份验证和混合验证的差别