Ошибка «Ошибка входа пользователя» при использовании SQL Server, но не при использовании утомительного - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь подключиться к настройке базы данных SQL Server Express на компьютере с Windows 10 в сети из macbook, на котором выполняется следующий код.Я могу подключиться, используя tedious, но не используя mssql.Это как если бы имя пользователя или пароль были неправильными.Причина, по которой я хочу заставить работать mssql, заключается в создании пула, и потому что он, кажется, имеет большую поддержку ... в противном случае я бы просто использовал tedious.Код создает оба соединения, и вывод показывает утомительное соединение, но mssql не удается.

const express = require('express');
const sql = require('mssql');
const bodyParser = require('body-parser');
const app = express();

var Connection = require('tedious').Connection;

// Body Parser Middleware
app.use(bodyParser.json());

// CORS Middleware
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

// define listineng port
const PORT = 5006;

// define tedious config
var config = {
            server: "JAMBER-VR1.local",
            userName: "testuser",
            password: "testuserpass",
            database: "SQLEXPRESS",
            options: {
              encrypt: false
            }
     };

var connection = new Connection (config);

connection.on('connect', function(err){

    if(err!=null){
      console.log(err);
         console.log("not connected - tedious");
    }
    else{
          console.log("Connected - tedious")
          connection.close();
    };
});


// Define SQL config

const dbConfig = {
  user: 'testuser',
  password: 'testuserpass',
  server: 'JAMBER-VR1.local',
  database: 'SQLEXPRESS',
  // port: 1433,
  // logging: true,
  options: {encrypt: false},
  pool: {
    max: 100,
    min: 0,
    idleTimeoutMillis: 30000
  }
}

const executeQuery = async () => {
  try {
    let pool = await sql.connect(dbConfig);
    console.log("pool connected - mssql");
    let result = await pool.request()
      .input('input_parameter', sql.Int, value)
      .query('select * from donor')

    console.log("Result: ", result);
  } catch (err) {
    console.log("Error: ", err);
  }
}

executeQuery();

Я получаю следующую ошибку.

[nodemon] запуск node index.js
Работа через порт 5006
Подключено - утомительно
Ошибка: {ConnectionError: Ошибка входа для пользователя 'testuser'.

в Connection.tedious.once.err (/ Users / jordanszymczyk / Code / TRTL / server_sql /node_modules/mssql/lib/tedious.js:237:17)
в Object.onceWrapper (события.js: 273: 13)
в Connection.emit (events.js: 182: 13) в Connection.processLogin7Response (/Users/jordanszymczyk/Code/TRTL/server_sql/node_modules/tedious/lib/connection.js:1292:16) в Connection.message (/Users/jordanszymczyk/Code/TRTL/server_sql/node_modules/tedious/lib/connection.js:1805:14) в Connection.dispatchEvent (/ Users / jordanszymczyk / код / ​​TRTL / server_sql /утомительно / lib / connection.js: 1004: 38) в MessageIO.(/Users/jordanszymczyk/Code/TRTL/server_sql/node_modules/tedious/lib/connection.js:884:18) в MessageIO.emit (events.js: 182: 13) в ReadablePacketStream.(/Users/jordanszymczyk/Code/TRTL/server_sql/node_modules/tedious/lib/message-io.js:104:16) в ReadablePacketStream.emit (events.js: 182: 13) код: 'ELOGIN', originalError: {Ошибка соединения: не удалось войти в систему для пользователя «testuser».в ConnectionError (/Users/jordanszymczyk/Code/TRTL/server_sql/node_modules/tedious/lib/errors.js:12:12) в Parser.(/Users/jordanszymczyk/Code/TRTL/server_sql/node_modules/tedious/lib/connection.js:628:33) в Parser.emit (events.js: 182: 13) в Parser.(/Users/jordanszymczyk/Code/TRTL/server_sql/node_modules/tedious/lib/token/token-stream-parser.js:54:15) в Parser.emit (events.js: 182: 13) в addChunk (/ Users/jordanszymczyk/Code/TRTL/server_sql/node_modules/readable-stream/lib/_stream_readable.js:291:12) в readableAddChunk (/Users/jordanszymczyk/Code/TRTL/server_sql/node_streamable/read-ablesable): 278: 11) в Parser.Readable.push (/Users/jordanszymczyk/Code/TRTL/server_sql/node_modules/readable-stream/lib/_stream_readable.js:245:10) в Parser.Transform.push (/ Users / jordanszymczyk/Code/TRTL/server_sql/node_modules/readable-stream/lib/_stream_transform.js:148:32) at doneParsing (/Users/jordanszymczyk/Code/TRTL/server_sql/node_modules/tedious/lib/token/stream-pser: 110: 18) сообщение: «Ошибка входа пользователя \ 'testuser \'. ', Код:' ELOGIN '}, имя:' ConnectionError '}

Вы можете увидеть console.log ("Connected - утомительно") печатает, затем сразу следует ошибка mssql.Я также попытался использовать локальный IP с теми же результатами.Тестирование через sqlcmd работает.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Фиксированный dgconfig выглядит следующим образом:

const dbConfig = {
  user: 'testuser',
  password: 'testuserpass',
  server: 'JAMBER-VR1.local',
  database: 'donor',
  options: {encrypt: false},
  pool: {
    max: 100,
    min: 0,
    idleTimeoutMillis: 30000
  }
}

Удалил SQLEXPRESS и заменил его именем базы данных.

0 голосов
/ 27 сентября 2018

SQLEXPRESS будет именем вашего экземпляра сервера SQL Server Express (т. Е. Сервера).Я не вижу его в вашем коде, но я предполагаю, что имя базы данных не SQLEXPRESS?

В вашем соединении mssql dbConfig попробуйте изменить Database на реальное имя базы данных, которую вы создали на вашем SQLЭкспресс экземпляр.

...