-Cambiar la contraseña:
gsec –user SYSDBA –pa
-Abrir el puerto 3050 como aquí te indica si quieres que los usuarios accedan desde fuera a tu sistema, si estás en un entorno web en donde tienes en el servidor tus bases de datos esto no hace falta hacerlo.
Ejecutar Firebird como non-system-user:
-Crear un usuario por ejemplo "UsuarioFB", que no pertenezca a ningun grupo de usuarios del sistema y en la ventana de propiedades desmarcar el check "Allow logon to terminal server"
-En la carpeta donde estén las bases de datos en Propiedades->Seguridad añadir el usuario "UsuarioFB" con los permisos de lectura, escritura,listar directorios, listado y ejecución.
En entornos web con que des permisos al usuario "iusr" de lectura y escritura es suficiente.
- Hay que cambiar las propiedades del servicio "Firebird Server – DefaultInstance" y "FB Guardian" de la siguiente manera:
1) desde Propiedades->Recovery cambiando todos los desplegables a "restart recovery"
2) desde Propiedades->Log on pinchar en "This account" y seleccionar el usuario "UsuarioFB" con la contraseña y usuario que hayamos indicado previamente.
3) desde Propiedades->General marcar en tipo de inicio "Automático"
Por regla general, sólo el proceso del servidor Firebird debería tener acceso a los archivos de base de datos. Los usuarios no necesitan, y no deben tener, el acceso a los archivos - ni siquiera de sólo lectura. Ellos consultan bases de datos a través del servidor, y el servidor se asegura de que sólo los usuarios obtengan el tipo de acceso permitido (en su caso) a cualquier objeto dentro de la base de datos.
Monitorización
Firebird incorpora tablas de monitorización que permiten conocer información relativa a la base de datos y a las consultas de los clientes respecto a la base de datos conectada, sentencias preparadas, transacciones, etc
Las tablas son las siguientes:
MON$DATABASE: base de datos conectada. Con información como ruta de la base de
datos, versión de ODS, identificadores de proceso, etc.
- MON$ATTACHMENTS: Conexiones realizadas. Con información de estado, usuario que
hace la conexión, protocolo de conexión, etc.
- MON$STATEMENTS: Sentencias preparadas para ejecutar. Con información como
identificadores, texto, estado, etc.
- MON$CALL_TACK: Pila de llamadas de las sentencias PSQL activas.
- MON$IO_STATS: Estadísticas de I/O.
- MON$RECORD_STATS: Estadísticas a nivel de fila.
- MON$MEMORY_USAGE: Uso de memoria actual.
- MON$CONTEXT_VARIABLES: Variables de contexto conocida
Ejemplos de consultas:
-Para saber todos los identificadores de procesos con carga de CPU actuales:
SELECT MON$SERVER_PID
FROM MON$ATTACHMENTS
WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION
AND MON$STATE = 1
-Para obtener información sobre las aplicaciones clientes
SELECT MON$USER, MON$REMOTE_ADDRESS,
MON$REMOTE_PID,
MON$TIMESTAMP
FROM MON$ATTACHMENTS
WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION
-Para obtener el nivelde aislamiento de la transacción actual
SELECT MON$ISOLATION_MODE
FROM MON$TRANSACTIONS
WHERE MON$TRANSACTION_ID = CURRENT_TRANSACTION
-Para obtener las sentencias actualmente activas
SELECT ATT.MON$USER,
ATT.MON$REMOTE_ADDRESS,
STMT.MON$SQL_TEXT,
STMT.MON$TIMESTAMP
FROM MON$ATTACHMENTS ATT
JOIN MON$STATEMENTS STMT
ON ATT.MON$ATTACHMENT_ID = STMT.MON$ATTACHMENT_ID
WHERE ATT.MON$ATTACHMENT_ID <> CURRENT_CONNECTION
AND STMT.MON$STATE = 1
Créditos:
Simon Carter
Vicente Tejero Trueba (Monitorización)