java.sql.SQLException: Login failed for user ...
Tal vez este error se pueda presentar en diferentes escenarios, pero la idea es explicar cual fue mi escenario y la solución que encontre.
En caso de tener este error lo primero que habría que probar es que el usuario y clave que tenemos configurados en los data stores de genexus estén funcionando ok. Para esto simplemente abrir el manejador de base de datos que estemos utilizando (ej Sql Server) e intentar loguearnos con ese usuario y clave. Si logramos loguearnos correctamente, seguramente el problema venga por otro lado como en mi caso y paso a explicarlo a continuación.
El usuario y clave del archivo client.cfg (archivo con configuración de acceso a la base de datos) se encriptaron con una clave diferente a la que se esta usando en ejecución. Genexus utiliza una key de encriptación por defecto si no se le especifica lo contrario, si queremos cambiar esa key hay que crear un archivo application.key y ponerlo junto a las clases en la web app (Aqui se explica mejor https://www.genexus.com/developers/websac?en,,,29369;;). Ademas hay que pegarlo en la carpeta raiz de la kb para que GeneXus utilice las mismas claves al momento de generar el client.cfg.
Debemos tener especial cuidado si utilizamos la funcionalidad "Deploy Application" disponible desde GeneXus 15, esta ya nos incluye en nuestro empaquetado (WebApp) el archivo application.key con una key autogenerada, por lo tanto si luego volvemos a compilar sobre la misma web app, el archivo client.cfg se va a sobre escribir SIN utilizar las mismas claves (utiliza las por defecto) por lo tanto en tiempo de ejecución nos va a dar error al conectar el SQL.
Hay dos soluciones posibles, la primera es borrar el archivo application.key desde la web app (no es lo mas aconsejable desde el punto de vista seguridad, porque en este caso vamos a estar utilizando la key por defecto). La otra es incluir el archivo application.key en la carpeta raiz de la kb para que GeneXus genere el archivo client.cfg con las mismas claves.
Espero a alguien le sirva, yo estuve peleando un buen rato con este error.
Saludos!
En caso de tener este error lo primero que habría que probar es que el usuario y clave que tenemos configurados en los data stores de genexus estén funcionando ok. Para esto simplemente abrir el manejador de base de datos que estemos utilizando (ej Sql Server) e intentar loguearnos con ese usuario y clave. Si logramos loguearnos correctamente, seguramente el problema venga por otro lado como en mi caso y paso a explicarlo a continuación.
El usuario y clave del archivo client.cfg (archivo con configuración de acceso a la base de datos) se encriptaron con una clave diferente a la que se esta usando en ejecución. Genexus utiliza una key de encriptación por defecto si no se le especifica lo contrario, si queremos cambiar esa key hay que crear un archivo application.key y ponerlo junto a las clases en la web app (Aqui se explica mejor https://www.genexus.com/developers/websac?en,,,29369;;). Ademas hay que pegarlo en la carpeta raiz de la kb para que GeneXus utilice las mismas claves al momento de generar el client.cfg.
Debemos tener especial cuidado si utilizamos la funcionalidad "Deploy Application" disponible desde GeneXus 15, esta ya nos incluye en nuestro empaquetado (WebApp) el archivo application.key con una key autogenerada, por lo tanto si luego volvemos a compilar sobre la misma web app, el archivo client.cfg se va a sobre escribir SIN utilizar las mismas claves (utiliza las por defecto) por lo tanto en tiempo de ejecución nos va a dar error al conectar el SQL.
Hay dos soluciones posibles, la primera es borrar el archivo application.key desde la web app (no es lo mas aconsejable desde el punto de vista seguridad, porque en este caso vamos a estar utilizando la key por defecto). La otra es incluir el archivo application.key en la carpeta raiz de la kb para que GeneXus genere el archivo client.cfg con las mismas claves.
Espero a alguien le sirva, yo estuve peleando un buen rato con este error.
Saludos!
Comments
Post a Comment