是否可以从Linux上运行的nodejs应用程序以Windows身份验证模式连接到mssql?

问题描述 投票:0回答:1

我正在尝试从Linux计算机上运行的nodejs以Windows身份验证模式(无法更改)连接到mssql。我尝试了很多事情,所有这些都导致了几乎相同的错误,这是尝试使用在带有nodejs的linux机器上运行的这个简单代码来完成乏味的尝试:

let tedious = require('tedious');
let Connection = tedious.Connection;
const config = {
    userName: 'myUserName', 
    password: 'myPassword', 
    server: 'MyServ',
    options: {
        database: 'MyDbName'
    }
}

function handleConnection(err: any) {
    if (err) console.error("error connecting :-(", err);
    else console.log("successfully connected!!")
}

let connection = new Connection(config);
connection.on('connect', handleConnection);

我收到此错误

error connecting :-( { ConnectionError: Login failed for user ''. 
at ConnectionError (./node_modules/tedious/lib/errors.js:13:12) 
at Parser.tokenStreamParser.on.token (./node_modules/tedious/lib/connection.js:848:51) 
at Parser.emit (events.js:198:13) 
at Parser.parser.on.token (./node_modules/tedious/lib/token/token-stream-parser.js:37:14) 
at Parser.emit (events.js:198:13) 
at addChunk (./node_modules/readable-stream/lib/_stream_readable.js:298:12) 
at readableAddChunk (./node_modules/readable-stream/lib/_stream_readable.js:280:11) 
at Parser.Readable.push (./node_modules/readable-stream/lib/_stream_readable.js:241:10) 
at Parser.Transform.push (./node_modules/readable-stream/lib/_stream_transform.js:139:32) 
at doneParsing (./node_modules/tedious/lib/token/stream-parser.js:122:14) message: 'Login failed for user \'\'.', code: 'ELOGIN' }

我使用的凭据确实具有SQL权限(已在Windows计算机上用ODBC测试)。我是在做错什么,还是根本不可能?

node.js sql-server linux
1个回答
0
投票

@@ ADyson非常感谢您提供的信息,您设法找到了解决方案,以解决由于我对这一主题完全缺乏知识而导致的公式化问题,非常感谢。解决方案是使用域登录,此代码段有效:

const config = {
    user: MyUserName,
    password: MyPassword,
    server: 'MyServAdress',
    database: 'MyDbName,
    domain: 'MyDomain'
}

const sql = require('mssql');
sql.connect(config).then((pool: any) => {
    console.log('connected!');
}).catch((err: any) => {
    console.log(err);
});
© www.soinside.com 2019 - 2024. All rights reserved.