我正在使用node.js和mssql
包通过SQL Server身份验证连接到SQL Server数据库。当我尝试使用具有相同凭据的SQL Server Management Studio连接时,它工作正常。但是,使用node.js,我无法登录并获得带有连接错误的错误代码ELOGIN。
我已经尝试了许多在google中显示的示例,但我也遇到了同样的问题。 让我知道我在想什么。这是我的代码段。
代码从这里开始
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'登录失败。
在Connection.tedious.once.err(C:\ aws \ node_modules \ mssql \ lib \ tedious.js:244:17)
在Object.onceWrapper(events.js:277:13)
在Connection.emit(events.js:189:13)
在Connection.processLogin7Response(C:\ aws \ node_modules \ tedious \ lib \ connection.js:1397:14)
在Connection.message(C:\ aws \ node_modules \ tedious \ lib \ connection.js:1932:14)
在Connection.dispatchEvent(C:\ aws \ node_modules \ tedious \ lib \ connection.js:1084:36)
在MessageIO.messageIo.on(C:\ aws \ node_modules \ tedious \ lib \ connection.js:984:14)
在MessageIO.emit(events.js:189:13)
在Message.message.on(C:\ aws \ node_modules \ tedious \ lib \ message-io.js:32:14)
在Message.emit(events.js:194:15)代码:“ ELOGIN”,
originalError:{ConnectionError:用户'svcXXXXXXX'登录失败。
在ConnectionError(C:\ aws \ node_modules \ tedious \ lib \ errors.js:13:12)
在Parser.tokenStreamParser.on.token(C:\ aws \ node_modules \ tedious \ lib \ connection.js:735:29)
在Parser.emit(events.js:189:13)
在Parser.parser.on.token(C:\ aws \ node_modules \ tedious \ lib \ token \ token-stream-parser.js:27:14)
在Parser.emit(events.js:189:13)
在addChunk(C:\ aws \ node_modules \ ready-stream \ lib_stream_visible.js:297:12)
在readAddChunk(C:\ aws \ node_modules \ ready-stream \ lib_stream_visible.js:279:11)
在Parser.Readable.push(C:\ aws \ node_modules \ ready-stream \ lib_stream_visible.js:240:10)
在Parser.Transform.push(C:\ aws \ node_modules \ read-stream \ lib_stream_transform.js:139:32)
在doneParsing(C:\ aws \ node_modules \ tedious \ lib \ token \ stream-parser.js:80:14)消息:“用户\'svcXXXXXXX \'登录失败。”,
代码:'ELOGIN'},名称:'ConnectionError'}
我希望数据库中的一条记录可以提取并显示。
答案 0 :(得分:0)
它看起来您的登录信息不正确。 您输入了正确的用户名和密码吗?
如果您的登录信息正确,那么签出登录信息具有从外部环境进行连接的权限
答案 1 :(得分:0)
尝试一下。它为我工作。如果您不使用本地主机数据库,则需要位于该网络中。确保您可以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]);
}
});
});