Power Builder - Cambio de contraseña

 
Vista:

Cambio de contraseña

Publicado por Pablo (35 intervenciones) el 04/10/2007 22:54:32
Salu2 colegas programadores....

...Tengo un codigo que me permite cambiar la contraseña de un usuario SQL desde powerbuilder que es la sgte...

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
String Mysql,password_anterior,nuevo_password,user

password_anterior=old_password.text
nuevo_password=new_password.text
user=id.text
//
if len(password_anterior) >= 6 and len(nuevo_password) >= 6 then
sqlca.Autocommit = true
Mysql = "EXEC sp_password '"+password_anterior+"','"+nuevo_password+"','"+user+"'"
EXECUTE IMMEDIATE :Mysql using SQLCA;
halt
else
messagebox("Atención","La contraseña debe tener como mínimo 6 caracteres",StopSign!)
end if
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

El codigo me funciona de maravilla, el problema es que solo me permite cambiar la clave si el usuario actual del sistema es owner, es decir si tengo un usuario que tiene privilegios de operador no puedo cambiar la clave de ese usuario. Debo entrar en el sistema con un usuario owner para poder cambiar la clave de ese usuario operador!!!!!

Les agradeceria si pudiesen ayudarme. Saludos desde Paraguay!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Respuesta...

Publicado por Leopoldo Taylhardat (710 intervenciones) el 05/10/2007 13:47:46
Saludos desde Maracay, Venezuela...

En toda BD de la gama de mediano a alto nivel, el único (o únicos) que pueden cambiar passwd es el (son los) administrador(es)...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Respuesta...

Publicado por alberto (73 intervenciones) el 08/10/2007 20:28:43
Falso. El usuario siempre puede (o debe poder) cambiar su propia contraseña. Lo que hacen los administradores es cambiar las contraseñas de otros usuarios, que por cuestiones de extravío o falta de memoria, no la pueden cambiar.

Te sugiero lo siguiente. Aunque no conozco mucho de MYSQL, puedes invocar al procedimiento con el nombre del owner respectivo.

Mysql = "EXEC OWNER.sp_password '"+password_anterior+"','"+nuevo_password+"','"+user+"'"
EXECUTE IMMEDIATE :Mysql using SQLCA;

Este OWNER debe ser uno creado especialmente para el efecto, y la ejecución del prodecimiento deberá tener permisos públicos.

Otra cosa. Te recomiendo que veas si en MySQL existe algún tipo de variable que en un Trigger o Stored Procedure te indica el usuario con el que se está conectado.
Esto, de existir, te permitiría además validar que un usuario cambie exclusivamente su propia contraseña.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar