Node.js / мс sql: NTLM: «Ошибка входа для пользователя XXXXXX», но он может войти в систему с помощью Mgmt Studio и SqlClient Net. - PullRequest
0 голосов
/ 08 апреля 2020

Я не уверен, почему это происходит. Следующий скрипт завершается неудачно при попытке использовать указанную c учетную запись домена, которая имеет доступ к базе данных, указанной в атрибуте config «database».

Я запускаю скрипт из командной строки, которую я запустил под той же учетной записью, которой требуется доступ к базе данных.

Я могу подключиться с помощью учетных данных этой учетной записи к MS SQL Management Studio (и могу получить доступ к указанной базе данных), а также получить доступ к ней с помощью этих учетных данных с помощью MS SqlClient .

Наконец, если я переключу учетные данные в этом сценарии на свои и запусту сценарий под своей учетной записью, он будет работать, как и ожидалось.

Единственная мыслимая переменная, о которой я могу думать, это «настоящее» имя пользователя содержит пробел (я его не создавал, моя центральная служба безопасности сделала так, чтобы у меня не было никакого контроля над этим). Это что-то вроде "XY- SQL -APP RW". Я сомневаюсь, что это как-то связано с этим, но просто выбрасываю его туда.

Точная ошибка, которую я получаю: «ConnectionError: Ошибка входа для пользователя 'DOMAIN \ XT- SQL -APP RW'. Полная ошибка появляется после кода.

Я в замешательстве, потому что, если я не могу заставить это работать, мне придется встраивать это приложение. Net, когда остальная часть приложения Javascript (Vue. js & Node). Это конкретное приложение должно было быть API.

var Connection = require("tedious").Connection;
var Request = require("tedious").Request;
var TYPES = require("tedious").TYPES;

("use strict");

var config = {
  server: "SERVER",
  authentication: {
    type: "ntlm",
    options: {
      domain: "DOMAIN",
      userName: "xxxxxxxx,
      password: "xxxxxxxx",
      intanceName: "INSTANCENAME"
    }
  },
  options: {
    database: "DBNAME",
    trustServerCertificate: true,
    encrypt: true
  }
};

var cn = new Connection(config);

console.log(cn.config.authentication.options);

cn.on("connect", err => {
  if (err) {
    console.log(err);
  } else {
    console.log("CONNECTED");    
  }
});

Full error message:

{ ConnectionError: Login failed for user 'PERS\XT-SQL-APP RW'.
    at ConnectionError (c:\Projects\apis\b50api\node_modules\tedious\lib\errors.js:13:12)
    at Parser.tokenStreamParser.on.token (c:\Projects\apis\b50api\node_modules\tedious\lib\connection.js:853:51)
    at emitOne (events.js:116:13)
    at Parser.emit (events.js:211:7)
    at Parser.parser.on.token (c:\Projects\apis\b50api\node_modules\tedious\lib\token\token-stream-parser.js:37:14)
    at emitOne (events.js:116:13)
    at Parser.emit (events.js:211:7)
    at addChunk (c:\Projects\apis\b50api\node_modules\readable-stream\lib\_stream_readable.js:298:12)
    at readableAddChunk (c:\Projects\apis\b50api\node_modules\readable-stream\lib\_stream_readable.js:280:11)
    at Parser.Readable.push (c:\Projects\apis\b50api\node_modules\readable-stream\lib\_stream_readable.js:241:10)
  message: 'Login failed for user \'PERS\\XT-SQL-APP RW\'.',
  code: 'ELOGIN' }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...