I can't connect my Next.js app to AWS SQL Server

103 Views Asked by At

I'm trying to connect my Next.js application to my AWS SQL Server Express database, but it's not working. It's indicating an issue with the user.

I can access it through SQL Server Management Studio using the same credentials. Additionally, in AWS RDS, I've allowed public access and adjusted the security groups accordingly.

Credentials:

  • user: 'admin'
  • password: '12345678'
  • server: 'demo-ms.xxxxxxxxxxx.us-east-1.rds.amazonaws.com'
  • database: 'demo-ms'

ConnectionError: Login failed for user 'admin'.

at C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\mssql\lib\tedious\connection-pool.js:70:17
at Connection.onConnect (C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\tedious\lib\connection.js:1012:9)
at Object.onceWrapper (node:events:629:26)
at Connection.emit (node:events:514:28)
at Connection.emit (C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\tedious\lib\connection.js:1040:18)
at C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\tedious\lib\connection.js:2519:18
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'ELOGIN',
originalError: ConnectionError: Login failed for user 'admin'.
at Login7TokenHandler.onErrorMessage (C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\tedious\lib\token\handler.js:245:19)
at Readable. (C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\tedious\lib\token\token-stream-parser.js:26:33)
at Readable.emit (node:events:514:28)
at addChunk (node:internal/streams/readable:376:12)
at readableAddChunk (node:internal/streams/readable:349:9)
at Readable.push (node:internal/streams/readable:286:10)
at next (node:internal/streams/from:98:31)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'ELOGIN',
isTransient: undefined
}
}
undefined

Here's the connection setup that's throwing the error:

lib\db.js:

import sql from 'mssql'

const config = {
  user: 'admin',
  password: '12345678',
  server: 'demo-ms.xxxxxxxxxxx.us-east-1.rds.amazonaws.com',
  database: 'demo-ms',
  options: {
    encrypt: false // desactiva el cifrado SSL
  }
}

export async function executeQuery(query) {
  const pool = await sql.connect(config)
  const result = await pool.request().query(query)
  return result.recordset
}

src\pages\api\getData.js:


import { executeQuery } from '../../../lib/db';

export default async function getData(req, res) {

    try {
        // Consulta SQL
        const result = await executeQuery('SELECT * FROM Producto');

        // Imprimir los resultados por consola
        console.log(result);
        res.status(200).json({ results: result})
    } catch (err) {
        // Manejo de errores
        console.error(err);
    }
}

src\pages\api\hello.js:

import getData from './getData'; // Asegúrate de tener la ruta correcta hacia getData.js

export default async function handler(req, res) {
  try {
    // Llama a la lógica de getData.js
    const result = await getData(req, res);

    // Imprimir los resultados por consola
    console.log(result);

    res.status(200).json({ results: result });
  } catch (err) {
    // Manejo de errores
    console.error(err);
    res.status(500).json({ error: 'Error al obtener datos de la base de datos' });
  }
}

It would be amazing if you could help me out with this. I'd truly appreciate it.

I tried validating my database again on AWS, and it already has all the necessary public accesses, as evidenced by accessing it through SQL Server Management Studio.

I'd really like to connect my Next.js application to SQL Server Express.

0

There are 0 best solutions below