#node.js #sql-server #sql-server-authentication
#node.js #sql-server #sql-server-authentication
Вопрос:
Я использую 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();
Это ошибка при выполнении этого кода:
Ошибка подключения: ошибка входа для пользователя ‘svcXXXXXXX’.
при подключении.tedious.once.err (C:awsnode_modulesmssqllibtedious.js:244:17 )
в Object.onceWrapper (events.js:277:13)
при подключении.emit (events.js:189:13)
при подключении.processLogin7Response (C:awsnode_modulestediouslibconnection.js:1397:14 )
при подключении.сообщение (C:awsnode_modulestediouslibconnection.js:1932:14 )
при подключении.dispatchEvent (C:awsnode_modulestediouslibconnection.js:1084:36 )
в MessageIO.messageIo.on (C:awsnode_modulestediouslibconnection.js:984:14 )
в MessageIO.emit (events.js:189:13)
в Message.message.on (C:awsnode_modulestediouslibmessage-io.js:32:14 )
в Message.emit (события.js:194:15)код: ‘ELOGIN’,
originalError: {Ошибка подключения: ошибка входа для пользователя ‘svcXXXXXXX’.
при ConnectionError (C:awsnode_modulestediousliberrors.js:13:12 )
в Parser.tokenStreamParser.on.token (C:awsnode_modulestediouslibconnection.js:735:29 )
в Parser.emit (events.js:189:13)
в Parser.parser.on.token (C:awsnode_modulestediouslibtokentoken-stream-parser.js:27:14 )
в Parser.emit (events.js:189:13)
в addChunk (C:awsnode_modulesreadable-streamlib_stream_readable.js:297:12 )
в readableAddChunk(C:awsnode_modulesreadable-streamlib_stream_readable.js:279:11 )
в синтаксическом анализаторе.Readable.push (C:awsnode_modulesreadable-streamlib_stream_readable.js:240:10 )
в синтаксическом анализаторе.Transform.push (C:awsnode_modulesreadable-streamlib_stream_transform.js:139:32 )
при выполнении анализа (C:awsnode_modulestediouslibtokenstream-parser.js:80:14 )сообщение: «Ошибка входа в систему для пользователя «svcXXXXXXX».’,
код: ‘ELOGIN’ }, имя: ‘ConnectionError’ }
Я ожидаю, что одна запись из базы данных должна быть извлечена и отображена.
Комментарии:
1. У меня такая же проблема с подключением, учетные данные были проверены, и я смог использовать их для подключения к тому же экземпляру mssql с использованием sqlcmd
Ответ №1:
похоже, ваша регистрационная информация неверна. вы написали правильное имя пользователя и пароль?
если ваша информация для входа верна, проверьте, что информация для входа имеет право на подключение из внешней среды
Ответ №2:
Попробуйте это. Это сработало для меня. Если вы не работаете с базой данных 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]);
}
});
});