Asegurar / monitorizar Firebird

Estos son algunos tips que hay que tener encuenta para proteger las bases de datos Firebird:



-Cambiar la contraseña:

gsec –user SYSDBA –pa "antiguo pass" –modify SYSDBA –pw "nuevo pass"


-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)


















No hay comentarios:

Publicar un comentario

Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...