Подключение к SQL серверу с пакетом ms sql npm - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь написать лямбду, которая будет принимать значения из файла csv и вставлять их в базу данных на SQL сервере. Учетная запись пользователя должна использовать аутентификацию Windows для подключения к серверу SQL для выполнения вставки.

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

"code": "ELOGIN",
"message": "Ошибка входа пользователя" домен \\ user '. ",

Это мой код, который я использую с лямбдой:

"use strict";
const AWS = require('aws-sdk');
const converter = require("csvtojson");
const zlib = require('zlib');
const sql = require('mssql');
var s3 = new AWS.S3();


const config = {
    user: 'domain\\user',
    password: 'password',
    server: process.env.SQL_SERVER,
    database: process.env.DATABASE,
    options: {
        trustedConnection: true
    }
};



function unzipS3(keyName, bucketName) {
    return new Promise(async (resolve, reject) => {
        let options = {
            'Bucket': bucketName,
            'Key': keyName
        };

        s3.getObject(options, function (err, res) {
            if (err) return reject(err);

            resolve(zlib.unzipSync(res.Body).toString());
        });
    });
}

function convertToJSON(csvFile) {
    var options = {
        delimiter: ",",
        quote: '"',
        checkType: true,
        output: "json"
    };
    var convertedJson = '';
    return converter(options)
        .fromString(csvFile)
}


exports.handler = async (event, context, callback) => {
    var bucketName = process.env.BUCKET_NAME;
    var prefix = process.env.FOLDER_NAME + '/';
    var keyName = event.Records[0].s3.object.key;
    var csv = await unzipS3(keyName, bucketName);
    var jsonData = await convertToJSON(csv);
    console.log(csv);
    console.log(jsonData);
    var dbconn = await new sql.connect(config);
    dbconn.connect().then(function () {
        console.log('Connection successfull');
        dbconn.close();
    });
};

Я провел некоторое исследование в Интернете, и некоторые документы ссылались на использование в дополнение к модулю mssql для использования msnodesqlv8 но похоже, что это работает только для Windows машин (я нахожусь на ма c). Я попытался установить имя пользователя в качестве переменной и отформатировать эту переменную таким образом, чтобы у него был только один backsla sh, и использовать его в поле 'user', но в CW-журналах в AWS он по-прежнему показывает двойной backsla sh '\\'.

Есть ли что-то, что я не так делаю, чтобы подключиться к SQL Серверу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...