node.js не подключается к базе данных SQL Server с использованием аутентификации SQL Server
Я использую 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)
at 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 \ readable-stream \ lib_stream_readable.js: 297: 12)
at readableAddChunk (C: \ aws \ node_modules \ readable-stream \ lib_stream_readable.js: 279: 11)
в Parser.Readable.push (C:\aws\node_modules\readable-stream\lib_stream_readable.js:240:10)
в Parser.Transform.push (C: \ aws \ node_modules \ readable-stream \ lib_stream_transform.js: 139: 32)
at doneParsing (C: \ aws \ node_modules \ tedious \ lib \ token \ stream-parser.js: 80: 14)сообщение: "Ошибка входа для пользователя \'svcXXXXXXX\'.',
код: 'ELOGIN' }, имя: 'ConnectionError' }
Я ожидаю, что одна запись из базы данных должна быть извлечена и отображена.
1 ответ
Похоже , ваши данные для входа не верны. вы написали правильное имя пользователя и пароль?
если ваши данные для входа верны, то проверьте, что данные для входа имеют полномочия для подключения из внешней среды
Попробуйте это. У меня это сработало. Если вы не работаете с базой данных localhost, вам необходимо находиться в этой сети. Убедитесь, что вы можете проверить связь с сервером базы данных.
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]);
}
});
});