jueves, 3 de noviembre de 2011

Autenticación integrada de JDBC Driver para SQLServer

Si al intentar conectar con SQLServer desde java usando el JDBC Driver de Microsoft obtienes el siguiente error al usar autenticación integrada:

WARNING: Failed to load the sqljdbc_auth.dll
com.microsoft.sqlserver.jdbc.SQLServerException: Este controlador no está configurado para la autenticación integrada.


El problema es que la máquina virtual no encuentra la librería sqljdbc_auth.dll porque la ruta (path) a la misma no ha sido especificada.

Podemos copiar la dll a un path ya conocido, como por ejemplo la carpeta bin de tu jre actual.

O bien, podemos indicarle la ruta mediante argumentos:

(http://msdn.microsoft.com/en-us/library/ms378428.aspx)
 [...] puedes establecer la propiedad del sistema java.library.path para especificar el directorio de la librería sqljdbc_auth.dll. Por ejemplo, si el driver JDBC está instalado en el directorio por defecto, puedes especificar la localización de la DLL usando el siguiente argumento de la máquina virtual (VM) cuando la aplicación java se inicia:

-Djava.library.path=C:\Microsoft SQL Server JDBC Driver\sqljdbc_<version>\enu\auth\x86

Y eso es todo, hasta el próximo bit.

2 comentarios:

  1. No entiendo que quieres decir con eso lo puedes explicar mejor gracias, te agradesco los detalles ya que estos nos ayudan a entender mejor

    ResponderEliminar
  2. Podrías concretar la pregunta? Este post es simplemente una pequeña ayuda para implementar la Autenticación Integrada, ya que, si no añades el path a la dll correspondiente, o copias la dll en un fichero del path del sistema (p.ej. Windows), no te funcionará correctamente.

    ResponderEliminar