java - found - JDBC SQLServerException: "Este controlador no está configurado para la autenticación integrada".
jdbc sql server java (3)
Cuando se utiliza la autenticación integrada de seguridad de Windows
- Descargue sqljdbc_6.0.8112.100_enu.exe del sitio de Microsoft
- Instale el exe (lea las instrucciones en la ruta zip)
copia sqljdbc_4.0 / enu / auth / x64 / sqljdbc_auth.dll a
Java / jre7 / bin y a
Java / jre7 / lib
Después de esto, debería poder conectarse a las herramientas de hibernación para extraer la base de datos en Herramientas de datos.
Mi descargo de responsabilidad estándar: no he trabajado con Java en aproximadamente 10 años, así que es muy probable que esté haciendo algo básico incorrecto aquí.
Estoy escribiendo una "extensión del lado del servidor" para SmartFoxServer (SFS). En mi script de inicio de sesión, necesito hacer una conexión con MS SQL Server, que estoy intentando hacer usando JDBC. He probado el código JDBC en mi entorno de depuración y funciona bien.
PERO
Cuando pongo la extensión del lado del servidor en la carpeta de "extensiones" de SFS (según la especificación), com.microsoft.sqlserver.jdbc.SQLServerException
una com.microsoft.sqlserver.jdbc.SQLServerException
:
"Este controlador no está configurado para autenticación integrada".
Busqué este error en Google y descubrí que generalmente se debe a que el archivo sqljdbc_auth.dll
no se encuentra en la ruta del sistema; He copiado este archivo en una carpeta en la ruta de mi sistema, ¡y todavía no funciona!
¿Cualquier otra sugerencia?
Existen diferentes versiones de sqljdbc_auth.dll para diferentes arquitecturas de procesador (x86 / x64 / ia64). ¿Cuál estás usando en tu servidor SFS?
Debe elegir el que coincida con la arquitectura de la JVM con la que se ejecuta SFS. Entonces, si está ejecutando Java de 32 bits en una máquina de 64 bits, necesitará la versión x86, no la versión x64.
No he usado SFS antes, así que no sé si escribe cualquier registro en cualquier lugar. Si lo hace, podría valer la pena echarle un vistazo a estos registros para ver si se les ha escrito algo útil.
EDITAR : no puedo estar 100% seguro de que SFS esté utilizando Java de 64 bits solo porque se queda sin C: / Archivos de programa en lugar de C: / Archivos de programa (x86).
Encontré la siguiente línea en los documentos de SFS en Introducción> Requisitos e instalación. Si bien esta línea se aplica solo a Linux en oposición a Windows, podría sugerir que SFS en Windows también utiliza Java de 32 bits:
Desde la versión 1.5 SmartFoxServer viene con su propio Sun Java Runtime x86 de 32 bits.
Una forma rápida de determinar qué versión (es) de Java ha instalado es ver si existe una o ambas carpetas C:/Program Files/Java
o C:/Program Files (x86)/Java
. Por supuesto, si ambas carpetas existen, eso no es de mucha ayuda para usted.
¿Su aplicación funciona si usa la versión x86 de sqljdbc_auth.dll en lugar de la versión x64? Si de repente comienza a trabajar con la DLL x86, entonces SFS debe estar utilizando Java de 32 bits.
¿Hay un archivo por lotes utilizado para iniciar SFS? Si es así, leer esto podría ayudar a señalar de dónde está ejecutando SFS Java. También busque cualquier cambio en la PATH
. Java solo puede cargar archivos DLL en la propiedad del sistema java.library.path
, y en Windows, esto se establece en el valor de la PATH
entorno PATH
.
Si aún no puede determinar si SFS está utilizando Java de 32 bits o de 64 bits, intente utilizar Process Explorer para observar el entorno en el que se inició el proceso java.exe que ejecuta SFS.
Coloque el archivo .dll en su carpeta JRE: -
También estaba enfrentando el mismo problema y después coloqué sqljdbc_auth.dll (x86 o x64) dependiendo de su sistema operativo en la carpeta JRE, es decir, jre7 / bin / file.dll y luego ejecuté mi application.jar y funcionó perfectamente. Esto funcionó para mí, también puedes probar esto, esto también puede ayudarte :)