Tengo una instancia local de SQL Server. Si intento conectarme con Management Studio (autenticación de SQL Server, con nombre de usuario y contraseña), todo funciona bien.

Sin embargo, cuando intento crear una conexión desde una aplicación Spring Boot, obtengo algunos errores.

Este es el código para la fuente de datos (dbUsername y dbpassword son correctos)

@Bean
public DataSource getDataSource() throws SQLServerException {
    SQLServerDataSource ds = new SQLServerDataSource();
    ds.setUser(dbUsername);
    ds.setPassword(dbPassword);
    ds.setServerName("localhost");
    ds.setPortNumber(1433);
    ds.setDatabaseName("mydb");
    return ds;
}

Cuando intento recuperar una conexión con

Connection connection = dataSource.getConnection();

Recibo este error:

com.microsoft.sqlserver.jdbc.SQLServerException: Error de inicio de sesión para el usuario '"sa"'.

Si agrego ds.setIntegratedSecurity(true);, tengo un error diferente:

com.microsoft.sqlserver.jdbc.SQLServerException: este controlador no está configurado para la autenticación integrada.

Este es el controlador JDBC que estoy usando:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>8.4.1.jre8</version>
</dependency>

¿Alguna sugerencia?

0
S-Wing 22 ene. 2021 a las 13:54

1 respuesta

La mejor respuesta

Personalmente, le animo a que conecte su base de datos estableciendo la configuración en el archivo application.yaml. Está en src/resources/application.yaml

  1. Cree un archivo application.yaml (si aún no existe).
  2. Copia este contenido:
spring:
  datasource:
    URL: jdbc:sqlserver://localhost:1433/mydb?reconnect=true
    username: username
    password: password
  1. Reemplace el nombre de usuario y la contraseña por los suyos.
  2. Elimina el bean que has creado.
  3. ¡Buena suerte!
1
Itamar Podjarski 22 ene. 2021 a las 16:35