node.js未使用SQL Server身份验证连接到SQL Server数据库
我使用node.js和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
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实例