Este tema de la administración de los usuarios es interesante y es importante, así que continuemos.
Como ya habíamos visto en el anterior artículo de esta serie, en nuestro archivo de texto plano llamado DATABASES.CONF tenemos lo siguiente:
Listado 1. El contenido del archivo DATABASES.CONF
MARCELA = D:\SISTEMAS\CONTABILIDAD\DATABASES\MARCELA.FDB
SILVIA = D:\SISTEMAS\CONTABILIDAD\DATABASES\SILVIA.FDB
{
SecurityDatabase = E:\SEGURIDAD\USUARIOS_OK.FDB
}
SUSANA = D:\SISTEMAS\CONTABILIDAD\DATABASES\SUSANA.FDB
{
SecurityDatabase = SUSANA
}
VERONICA = D:\SISTEMAS\CONTABILIDAD\DATABASES\VERONICA.FDB
{
SecurityDatabase = VERONICA
}
security.db = E:\SEGURIDAD\PERMISOS.FDB
Por lo visto ahí podemos deducir que hay varias «bases de datos de seguridad» cuyos nombres son: usuarios_ok.fdb, susana.fdb, veronica.fdb, permisos.fdb. Entonces:
- ¿Cómo creamos una nueva «Base de Datos de seguridad»?
- ¿Cómo le agregamos usuarios?
- ¿Cómo conseguimos que la «Base de Datos de seguridad» sea la misma que la Base de Datos normal?
Crear una «Base de Datos de Seguridad»
Esto es muy simple. Y hay 2 formas de hacerlo.
- Copiamos el archivo security3.fdb.empty que se encuentra en la misma carpeta en donde se instaló al Firebird 3 y lo pegamos en cualquier otra carpeta y le cambiamos el nombre.
Por ejemplo: copiamos a security3.fdb.empty en la carpeta E:\SEGURIDAD\ y lo renombramos como usuarios_ok.fdb
2. Creamos una Base de Datos con el programa ISQL.EXE, algo como:
Fíjate que aunque no exista aún el usuario SYSDBA debes escribir ese nombre.
Agregar usuarios a una «Base de Datos de seguridad»
Aquí debes prestar mucha atención porque esto no es intuitivo, no es lo que uno esperaría.
Y es que para agregarle usuarios no debes estar conectado a la «Base de Datos de seguridad» sino que debes estar conectado a una Base de Datos normal, cuyo parámetro SecurityDatabase apunte a la «Base de Datos de seguridad».
Por ejemplo: la «Base de Datos de seguridad» de silvia.fdb se especificó que sea: E:\SEGURIDAD\USUARIOS_OK.FDB, entonces para agregarle usuarios a usuarios_ok.fdb debes conectarte a silvia.fdb, y no a usuarios_ok.fdb como podrías suponer.
¿Verdad que es raro? pero bueno, ¡¡¡así funciona!!!
Otra cosa rara es que debes conectarte como SYSDBA aún cuando no exista un usuario SYSDBA.
El programa que puedes utilizar para realizar esta tarea se llama ISQL.EXE y viene incluido con el Firebird.
El usuario SYSDBA aún no existe, pero debe ser especificado. Y no necesitas escribir un password (ya que si lo escribes, será ignorado, no se usará).
NOTA: No es obligatorio que crees a un usuario con el nombre SYSDBA. Mucha gente se acostumbró a tener un super-usuario llamado SYSDBA pero no es obligatorio en Firebird 3 tenerlo.
Con el comando CREATE USER podemos crear a todos los usuarios que deseemos crear.
Hasta Firebird 2.5.9 un password podía tener un máximo de 8 caracteres. Desde Firebird 3 puede tener un máximo de 255 caracteres pero se provee seguridad por los primeros 20 caracteres (eso significa que si escribes un password de más de 20 caracteres existe una posibilidad remota, pero existe, de que su hash sea igual a un hash de hasta 20 caracteres).
Para que el usuario sea creado debes escribir el comando COMMIT.
Hacer que una Base de Datos normal sea su propia «Base de Datos de seguridad»
Esto es muy sencillo. Lo que debes hacer es que en el archivo DATABASES.CONF el parámetro SecurityDatabase tenga el mismo alias que la Base de Datos normal. Luego, reiniciar el Servidor del Firebird, luego conectarte a tu Base de Datos normal, y a partir de ese momento el comando CREATE USER creará a los usuarios dentro de la Base de Datos normal.
Por ejemplo: en el Listado 1. hay una Base de Datos cuyo alias es VERONICA. Si te conectas a VERONICA y escribes el comando CREATE USER ese usuario se creará dentro de VERONICA. ¿Por qué? porque el alias es igual al valor del parámetro SecurityDatabase.
Conectándose a una «Base de Datos de seguridad»
En Firebird 3 puedes conectarte a una «Base de Datos de seguridad» exactamente de la misma manera en que puedes conectarte a una Base de Datos normal.
Para ver las tablas puedes escribir el comando:
SHOW TABLES;
Y para ver el contenido escribes un SELECT, como siempre, algo como:
SELECT * FROM PLG$SRP;
En la tabla PLG$SRP se guardan los datos de los usuarios que tú has creado.
Agregando usuarios a la «Base de Datos de seguridad» por defecto.
La «Base de Datos de seguridad» por defecto es security3.fdb y se encuentra en la carpeta donde se instaló el Firebird 3., salvo que hayas cambiado el valor del parámetro SecurityDatabase del archivo FIREBIRD.CONF.
Igual que antes, para agregarle usuarios debes conectarte no a security3.fdb (o su reemplazante) sino a una Base de Datos normal. Por ejemplo, como alicia.fdb no tiene un alias en el archivo DATABASES.CONF entonces si te conectas a alicia.fdb y escribes el comando CREATE USER ese usuario será agregado a la «Base de Datos de seguridad» por defecto (que en nuestro ejemplo será permisos.fdb).
En este artículo, la «Base de Datos de seguridad» por defecto es E:\SEGURIDAD\PERMISOS.FDB porque es la especificada en el alias security.db del archivo DATABASES.CONF.
Agregando usuarios después de instalar al Firebird 3
Si inmediatamente después de haber instalado el Servidor del Firebird 3 ya quieres agregar usuarios, ¿cómo lo consigues?
Como recordarás, para agregar usuarios a una «Base de Datos de seguridad» debes estar previamente conectado a una Base de Datos normal.
Para que puedas hacerlo desde el primer instante es que al instalar al Firebird 3 se copia una Base de Datos de ejemplo llamada employee.fdb
Si no modificaste el parámetro SecurityDatabase del archivo FIREBIRD.CONF entonces la «Base de Datos de seguridad» será security3.fdb
En este caso, la Base de Datos normal es employee.fdb, que trae como ejemplo el Firebird. Y la «Base de Datos de seguridad» por defecto es security3.fdb
Entonces, si no cambiaste a la «Base de Datos de seguridad» en el archivo FIREBIRD.CONF mediante el parámetro SecurityDatabase, el usuario WALTER y el usuario OJEDA se guardarán en security3.fdb
Artículos relacionados:
Usuarios y seguridad en Firebird 3 (1)
Usuarios y seguridad en Firebird 3 (2)
Usuarios y seguridad en Firebird 3 (4)
Usuarios y seguridad en Firebird 3 (5)
Comentarios recientes