Tutoriales Varios
¿Como permito que los usuarios puedan modificar su propia contraseña?
La manera más sencilla es hacer un GRANT UPDATE a la tabla USERS para que sea una tabla PUBLICA, además de crear u TRIGGER para prevenir que los usuarios puedan cambiar la contraseña de otros usuarios, a excepción de SYSDBA.
Debes conectarte a la base de datos de seguridad de Interbase (isc4.gdb) …
En windows …
CONNECT ‘C:Archivos de programaBorlandInterBaseisc4.gdb’
USER ‘SYSDBA’
PASSWORD ‘masterkey’;
En Linux …
CONNECT /opt/interbase/isc4.gdb
USER ‘SYSDBA’
PASSWORD ‘masterkey’;
Creamos el TRIGGER, para que los usuarios no se cambién la contraseña entre sí, a excepción de SYSDBA.
CREATE EXCEPTION E_NO_RIGHT
‘No estás autorizado para modificar a é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 ;!!
Y finalmente realizamos el GRANT UPDATE sobre la table USERS, para que sea una tabla PUBLICA.
GRANT UPDATE(PASSWD, GROUP_NAME, UID, GID, FIRST_NAME, MIDDLE_NAME, LAST_NAME)
ON USERS
TO PUBLIC;
Esta modificación tiene una gran falencia, todos los usuarios y sus contraseñas encriptadas, quedarán visibles al PUBLICO, de esta manera es más fácil descargar la lista de usuarios y intentar romperlas a fuerza bruta.