17/03/2004, 12:13
|
| | | Fecha de Ingreso: enero-2002
Mensajes: 59
Antigüedad: 22 años, 11 meses Puntos: 0 | |
Interbase Tema : Interbase Pregunta : ¿Como permito que los usuarios puedan modificar su propia contraseña? Respuesta
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 programa\Borland\InterBase\isc4.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. |