Trick to protect Firebird BD's Embedded

¡¡ ATENCION !! MUY IMPORTANTE

- Estos pasos hay que hacerlos antes de crear las tablas para poder manipular
la estructura con el nuevo usuario y no tener problemas en el diseño, lo mejor
es hacer una BD nueva y seguir las instrucciones.

- Si ya esta creada la BD con el usuario SYSDBA no se podran modificar
las estructuras despues con el nuevo usuario ya que es el usuario SYSDBA
el propietario con el que se han creado.
Consulte PREGUNTAS Y RESPUESTAS al final del truco.

TRUCO PARA BLOQUEAR SYSDBA en tablas EMBEDDED

Ejemplo de usuario que sustituye a SYSDBA.
USUARIO: QWNFTEJX
CLAVE  : QWNFTEJX

EL TRUCO CONSISTE EN QUE EL USUARIO HACE DE CLAVE
por que en el modo EMBEDDED de FIREBIRD la clave no se valida
y da igual cual sea.

INSTRUCCIONES:
1. Hay que crear un nuevo usuario por ejemplo: QWNFTEJX
2. Asignarle permisos al nuevo usuario QWNFTEJX
  
   ALTER USER Z4NFPHJX GRANT ADMIN ROLE;
   GRANT RDB$ADMIN TO QWNFTEJX

   COMPROBAR que RDB$ADMIN esta asignado al usuario Z4NFPHJX
   Con Select * from RDB$roles si no esta edita la tabla y asignalos.

   DARLE LOS PERMISOS al usuario QWNFTEJX sobre las tablas de la BD

   "GRAND ALL TO ALL"
   "GRAND ALL TO ALL WITH GRANT OPTION"

3. Hay que crear un ROLE con el nombre SYSDBA en la tabla RDB$ROLES

   Se puede poner esto en tu editor de Firebird preferido por ejemplo IBexpert
   Select * from RDB$ROLES; y crear el ROLE ( O hacer un INSERT.)

Despues de esto el usuario SYSDBA ya no tendra acceso a la Base de Datos a no ser
que eliminemos el ROLE que hemos creado llamado SYSDBA

Cerramos la BD y entramos de nuevo con el usuario QWNFTEJX y ya podemos crear las tablas y todo lo demas que estaran protegidas con el USUARIO: QWNFTEJX y Contraseña: QWNFTEJX

FIN DEL TRUCO

PREGUNTAS Y RESPUESTAS

¿ Que hago si ya tengo la BD creada con SYSDBA ?

El truco "NO" permitira que el nuevo usuario QWNFTEJX cambie nada de las tablas
por que el creador fue SYSDBA pero las nuevas tabla que se creen con el usuario
QWNFTEJX funcionaran de forma normal y seran editables al 100%

Si ya se tiene la BD generada con SYSDBA se podria rehacer la tabla hecha con el usuario SYSDBA, extrayendo el Metadata y regenerandola de neuvo con el usuario QWNFTEJX para poder modificar la estructura y no tener problemas.

NO se habre mi BD desde mi gestor de Bases de Datos Firebird!! Acordaros de que si se quiere abrir la base de datos en otro pc con un gestor de BD's Firebird
hay que crear el usuario QWNFTEJX previamente para poder abrir la BD con nuestro usuario especial.