02/02/2006, 10:47
|
| | | Fecha de Ingreso: enero-2002
Mensajes: 59
Antigüedad: 22 años, 11 meses Puntos: 0 | |
Interbase Tema : Interbase / Firebird Pregunta : ¿Como permito que los usuarios puedan modificar su propia contraseña? Respuesta
La forma más fácil es hacer un GRANT UPDATE ON USERS TO PUBLIC, y agregar un TRIGGER que prevenga que los usuarios, con excepción de SYSDBA de modificar la contraseña de alguién más
Este es el script :
/*
Base de datos de seguridad (isc4.gdb) - version A
-permite a los usuario cambiar su propia contraseña,
-permite a SYSDBA agregar, cambiar, borrar cualquier usuario/contraseña.
Escrito por: Ivan Prenosil, 2001
*/
CONNECT 'C:\Archivos de programa\Borland\InterBase\isc4.gdb'
USER 'SYSDBA'
PASSWORD 'masterkey';
CREATE EXCEPTION E_NO_RIGHT
'No tiene provilegios para modificar éste usuario.';
SET TERM !!;
CREATE TRIGGER user_name_bu
FOR USERS
BEFORE UPDATE
AS
BEGIN
IF (NOT (USER='SYSDBA' OR USER=OLD.USER_NAME))
THEN EXCEPTION E_NO_RIGHT;
END !!
SET TERM ;!!
/** Grants. **/
GRANT UPDATE(PASSWD, GROUP_NAME, UID, GID, FIRST_NAME, MIDDLE_NAME, LAST_NAME)
ON USERS
TO PUBLIC; Importante
El problema de éste procedimiento es que los usuarios con sus contraseñas quedan visibles, por lo que si alguien malintencionado podría intentar descriptar las contraseñas a fuerza bruta. |