Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js未使用SQL Server身份验证连接到SQL Server数据库_Node.js_Sql Server_Sql Server Authentication - Fatal编程技术网

node.js未使用SQL Server身份验证连接到SQL Server数据库

node.js未使用SQL Server身份验证连接到SQL Server数据库,node.js,sql-server,sql-server-authentication,Node.js,Sql Server,Sql Server Authentication,我使用node.js和mssql包通过SQL Server身份验证连接到SQL Server数据库。当我尝试使用具有相同凭据的SQLServerManagementStudio进行连接时,它工作正常。但是,使用node.js,我无法登录并获取带有连接错误的错误代码ELOGIN 我试过谷歌上的很多例子,我也面临着同样的问题。 让我知道我错过了什么。这是我的代码片段 代码从这里开始 var sql = require('mssql'); var config = { server: 'scaXX

我使用node.js和
mssql
包通过SQL Server身份验证连接到SQL Server数据库。当我尝试使用具有相同凭据的SQLServerManagementStudio进行连接时,它工作正常。但是,使用node.js,我无法登录并获取带有连接错误的错误代码ELOGIN

我试过谷歌上的很多例子,我也面临着同样的问题。 让我知道我错过了什么。这是我的代码片段

代码从这里开始

var sql = require('mssql');
var config = {
  server: 'scaXXXXXXXXXXXX',
  database: 'scaXXXXXXXXXX',
  user: 'svcXXXXXXX',
  password: 'Password',
  port: 1433
};

function listProducts() {
  var conn = new sql.ConnectionPool(config);
  conn.connect().then(function () {
  var request = new sql.Request(conn);
  request.query("select top 1 * from dbo.Persons").then(function 
  (recordSet) {
        console.log(recordSet);
        conn.close();
    }).catch(function (err) {
        console.log(err);
        conn.close();
    });
   }).catch(function (err) {
    console.log(err);
   });
 }

listProducts();
这是运行此代码时出现的错误:

ConnectionError:用户“svcXXXXXXX”登录失败

at Connection.tedious.once.err(C:\aws\node\u modules\mssql\lib\tedious.js:244:17)
在Object.onceWrapper(events.js:277:13)
在Connection.emit(events.js:189:13)
在Connection.processLogin7Response(C:\aws\node\u modules\tedous\lib\Connection.js:1397:14)处
在Connection.message(C:\aws\node\u modules\tedious\lib\Connection.js:1932:14)中
在Connection.dispatchEvent(C:\aws\node\u modules\tedous\lib\Connection.js:1084:36)上
在MessageIO.MessageIO.on(C:\aws\node\u modules\tedous\lib\connection.js:984:14)
在MessageIO.emit(events.js:189:13)
在Message.Message.on(C:\aws\node\u modules\tedous\lib\Message io.js:32:14)上
在Message.emit(events.js:194:15)上

代码:'ELOGIN',
原始错误:{ConnectionError:用户'svcXXXXXXX'登录失败。
在ConnectionError(C:\aws\node\u modules\tedous\lib\errors.js:13:12)
位于Parser.tokenStreamParser.on.token(C:\aws\node\u modules\tedous\lib\connection.js:735:29)
在Parser.emit(events.js:189:13)
位于Parser.Parser.on.token(C:\aws\node\u modules\tedious\lib\token\token stream Parser.js:27:14)
在Parser.emit(events.js:189:13)
在addChunk(C:\aws\node\u modules\readable stream\lib\u stream\u readable.js:297:12)
在readableAddChunk(C:\aws\node\u modules\readable stream\lib\u stream\u readable.js:279:11)
在Parser.Readable.push(C:\aws\node\u modules\Readable stream\lib\u stream\u Readable.js:240:10)
在Parser.Transform.push(C:\aws\node\u modules\readable stream\lib\u stream\u Transform.js:139:32)
在doneParsing(C:\aws\node\u modules\tedous\lib\token\stream parser.js:80:14)

消息:“用户“svcXXXXXXX\”登录失败,
代码:'ELOGIN'},名称:'ConnectionError'}


我希望从数据库中提取并显示一条记录。

看来您的登录信息不正确。 你写的用户名和密码正确吗


如果您的登录信息正确,则签出登录信息具有从外部环境连接的权限

请尝试此操作。这对我有用。如果不使用本地主机数据库,则需要位于该网络中。确保可以ping数据库服务器

var sql = require("mssql");
var moment = require("moment");
let port = process.env.PORT;
if (port == null || port == "") {
    port = 8000;
}

var config = {
    user: "xxxx",
    password: "xxxxx",
    server: "xxxxxx",
    database: "xxxx"
};

const dbconn = sql.connect(config, err => {
    if (!err) {
        console.log("Connected to the database");
    } else {
        console.log("Problem in connecting to database");
        console.log(err);
        console.log("testing ");
    }
});

app.get("/getSummaryDetails", (req, res) => {
    dbconn.query("exec QCGrid", (err, rows, fields) => {
        if (!err) {
            res.send(rows.recordsets[0]);
        }
    });
});

我有同样的连接问题,凭据已经过验证,我能够使用它们使用sqlcmd连接到同一个mssql实例