我正在尝试从我的 NodeJS 服务器应用程序连接到 MS SQL Server 数据库,当我使用 localhost/127.0.0.1 将它推送到真实服务器时,它在我的本地计算机上完美运行,但我收到了 Auth 错误。
我得到的错误如下:
登录来自不受信任的域,不能用于 Windows 身份验证
所以我想也许它的域不同,但我的域如下:
000001.mysubdomain.mydomain.com
ct000002.mysubdomain.mydomain.com
所以我不是一个网络人,但我会假设在这种情况下 MS SQL Server 和我的 NodeJS 服务器实际上都在同一个域上,我的假设是正确的还是不正确的?
更多信息 - 在这两种情况下,IP 地址共享相同的第一个数字,但其余的不同 - SS.XX.XX.XX - 其中 SS 是相同的数字而 XX 是不同的 - 这是否表明它们实际上是不同的域?
除此之外,如果这是一个域问题,那么为什么它会在我的本地机器上工作?
因此,如果我们可以消除这不是域问题,那么我不知道该去哪里,这是我的代码,我正在使用 Tedious-NTLM NodeJS 模块 - https://www.npmjs.com/package/tedious -ntlm
var tds = require("tedious-ntlm"); //Get the tedious model for NTLM connection to the SQL Server
//Set up config for logging into the DB
var config = {
userName: 'myusername', //Username
domainName: "mydomain", //Domain
password: 'mypassword', //Password
server: '000001.mysubdomain.mydomain.com' //Database address
};
function getDataFromSQLServer(callback){
var connection = new tds.Connection(config); //Configure a connection
//When the database is connected to we get this event
connection.on('connect', function(err) {
// If no error, then good to go...
if(err){
console.log('err = ' + err); //Log the error to the console
}
else{
executeStatement(callback); //Execute the test statement
}
}
);
正如您在此处看到的,当我的函数被调用时,我记录了一个错误,当我尝试从我的服务器运行代码时,我在这里收到一个错误,但从我的本地计算机运行它时我没有问题。
要获取有关错误的更多信息,我有以下代码:
connection.on('errorMessage', function(err){
console.log('full error = ' + JSON.stringify(err)); //Log the error to the console
});
这给了我以下信息:
full error = {"number":18452,"state":1,"class":14,"message":"登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。","serverName" :"000001","procName":"","lineNumber":1,"name":"ERROR","event":"errorMessage"}
再次,如果在我的本地机器上运行一切正常,但如果我从我的服务器运行我得到错误,我想知道这是否真的是一个域问题,或者错误消息是否不正确并且还有其他问题?