04 agosto 2021

6.2 Auditoria

 



Auditoria: Es el proceso que permite medir, asegurar, demostrar, monitorear y registrar los accesos a la información almacenada en las bases de datos incluyendo la capacidad de determinar:

 

      Quién accede a los datos

 

      Cuándo se accedió a los datos

 

      Desde qué tipo de dispositivo/aplicación

 

      Desde que ubicación en la Red

 

      Cuál fue la sentencia SQL ejecutada

 

      Cuál fue el efecto del acceso a la base de datos

 

6.2.1 Objetivos Generales de la Auditoría de BD

Disponer de mecanismos que permitan tener trazas de auditoría completas y automáticas relacionadas con el acceso a las bases de datos incluyendo la capacidad de generar alertas con el objetivo de:


•      Mitigar los riesgos asociados con el manejo inadecuado de los datos.

 

•      Apoyar el cumplimiento regulatorio.

 

•      Satisfacer los requerimientos de los auditores.

 

•      Evitar acciones criminales.

 

•      Evitar multas por incumplimiento.

 

 

6.2.2 Importancia de la Auditoría de Base de Datos

 ·         Toda la información financiera de la organización reside en bases de datos y deben existir controles relacionados con el acceso a las mismas

·         Se debe poder demostrar la integridad de la información almacenada en las bases de datos

·         Las organizaciones deben mitigar los riesgos asociados a la pérdida de datos y a la fuga de información

·         La información confidencial de los clientes, son responsabilidad de las organizaciones

·         Los datos convertidos en información a través de bases de datos y procesos de negocios representan el negocio

·         Las organizaciones deben tomar medidas mucho más allá de asegurar sus datos

Deben monitorearse perfectamente a fin de conocer quién o qué les hizo exactamente qué, cuándo y cómo.

 

6.2.3 Datos a Evaluar por Medio de la Auditoría de la Base de Datos:

·         Definición de estructuras físicas y lógicas de las bases de datos

·         Control de carga y mantenimiento de las bases de datos

·         Integridad de los datos y protección de accesos

·         Estándares para análisis y programación en el uso de bases de datos

·         Procedimientos de respaldo y de recuperación de datos

 

6.2.4 Aspectos Claves

 ·         No se debe Comprometer el Desempeño de las Bases de Datos

o    Soportar diferentes esquemas de auditoría.

o   Se debe tomar en cuenta el tamaño de las bases de datos a auditar y los posibles SLA establecidos.

 

·         Segregación de Funciones

o   El sistema de auditoría de base de datos no puede ser administrado por los DBA del área de IT.

 

·         Proveer Valor a la Operación del Negocio

o   Información para auditoría y seguridad.

o   Información para apoyar la toma de decisiones de la organización.

o   Información para mejorar el desempeño de la organización.


6.1 Monitoreo

 




Monitoreo general de un DBMS

 

La elección de un buen manejador de base de datos es de vital importancia ya que puede llegar a ser una inversión tanto en hardware como en software muy cuantioso, pero no solo eso, además va a determinar el centro de información de la empresa.

 

Los sistemas orientados a los datos se caracterizan porque los datos no son de una aplicación sino de una Organización entera que los va a utilizar; se integran las aplicaciones, se diferencian las estructuras lógicas y físicas. El concepto de relación cobra importancia. Originalmente las aplicaciones cubrían necesidades muy específicas de procesamiento, se centraban en una tarea específica.

 

 

6.1.1 Monitoreo de espacio en disco

 Uno de los principales indicadores que se tiene que tomar en cuenta como DBA es el espacio disponible en disco. No es problema cuando se tiene un server o 2 para monitorear, sin embargo, cuando hay una cantidad considerable automatizar un proceso que lo haga es lo mejor. Dentro de SQL Server (7,2000,2005) hay un procedimiento no documentado que nos puede ayudar a cumplir este cometido.

El procedimiento es XP_FIXEDDRIVES, no lleva parámetros ni nada y nos regresan todos los discos a los que tiene acceso SQL Server y su espacio disponible en Megabytes.

Si esta en cluster mostrara todos los discos aunque los discos no estén en el mismo grupo que la instancia, lo que puede llegar a confundir.

Dejo a consideración de cada quien como utilizarlo, ya sea mandando un mail con el resultado u opciones más complejas como el revisar un porcentaje y en base a eso tomar una acción.

 

 

 

6.1.2 Monitoreo de logs

 Las revisiones deben realizarse sobre el archivo de alerta de ORACLE (alert.log) y sobre los archivos de rastreo de procesos de background y de usuarios para identificar errores que se presenten a nivel de base de datos o de sistema operativo.

Los archivos de alerta útiles para el diagnóstico de información que contiene ORACLE y que se utilizan para la detección de errores en la base de datos son:

 

6.1.3 Archivo de Log´s de alerta (alert.log)

El Alert Log registra errores en forma cronológica, provenientes de la operación diaria de la Base de Datos. La ubicación actual del archivo es la ubicación por defecto establecida por ORACLE y se verifica mediante el parámetro BACKGROUND_DUMP_DEST del archivo init.ora:

 

BACKGROUND_DUMP_DEST = E:\U01\ORACLE\UCBL\ADMIN\bdump.

La revisión de este archivo en forma periódica permite detectar errores internos (ORA-600) y errores de corrupción de bloques (ORA-1578). Adicionalmente, permite monitorear las operaciones de la base de datos (CREATE DATABASE, STARTUP, SHITDOWN, ARCHIVE LOG y RECOVER) y ver los parámetros que no se muestran por defecto en la inicialización.

 

 

6.1.4 Archivos de rastreo de procesos de Background

Los archivos de rastreo de procesos de Background se generan cuando un proceso de background (SMON, PMON, DBWn, etc.) emite un error. Estos archivos se almacenan en BACKGROUND_DUMP_DEST = E:\U01\ORACLE\UCBL\ADMIN\bdump.

 

 

6.1.5 Archivos de rastreo de usuarios

Los archivos de rastreo de usuarios (user trace files) se crean a través de procesos de servidor cuando se generan errores o cuando se solicita el rastreo por el usuario o a nivel de parámetros de la base de datos. 

Su ubicación actual definida por el parámetro USER_DUMP_DEST y actualmente es:

 

E:\U01\ORACLE\UCBL\ADMIN\udump.

Las normas de revisión de los archivos mencionados se definen en el documento Procedimientos de Administración de Base de Datos.

El principal riesgo que se menciona en las observaciones es la posibilidad que se realicen operaciones no autorizadas y que éstas no sean identificadas en la base de datos; sin embargo los archivos de log´s de usuarios no permiten identificar con facilidad estas operaciones y en todo caso requieren de una gran cantidad de tiempo de revisión y espacio de almacenamiento. Por este motivo, se utilizan tablas de auditoria para todos los sistemas y para aquellas tablas relevantes de cada uno, las tablas de auditoria tienen las siguientes características:

 

       Almacenan datos obligatorios (transacción, fecha y usuario) y datos relacionados con la tabla a la que hacen el monitoreo.

 

       Los registros a las tablas de auditoria se activan mediante un disparador cada vez que se realizan cambios en la tabla base.

 

       Se consultan estas tablas cuando se quiere identificar una transacción, un usuario o una fecha de transacción.

 

El contenido de estas tablas permite mantener un registro constante sobre las operaciones que se realizan en la base de datos y las mismas pueden ser consultadas en cualquier momento.

 

 

6.1.6 Monitoreo de Memoria compartida

 PGA DE ORACLE (ÁREA GLOBAL DE PROGRAMA)

Un PGA es una región de memoria que contiene datos e información de control para un proceso de servidor. Es la memoria no compartida creada por la base de datos Oracle cuando un proceso de servidor se ha iniciado. El acceso a la PGA es exclusivo para el proceso del servidor. Hay un PGA para cada proceso de servidor. Procesos en segundo plano también se asignan sus propios PGA. La memoria total utilizada por todos los PGAs individuales se conoce como el ejemplo total de memoria PGA, y la recogida de PGAs individuales se refiere como el ejemplo total de la PGA, o simplemente instancia de la PGA. Puede utilizar los parámetros de inicialización de base de datos para definir el tamaño de la instancia de la PGA, no PGA individuales.

 

El PGA puede ser crítico para el rendimiento, especialmente si la aplicación está haciendo un gran número de clases. Operaciones de ordenación se produce si utiliza ORDER BY y GROUP BY comandos en las sentencias SQL.

 

 

SGA DE ORACLE (SISTEMA DE HYPERLINK "http://abdfuv.blogspot.mx/2012/08/sga-de-oracle-sistema-de-area-global.html"ÁHYPERLINK "http://abdfuv.blogspot.mx/2012/08/sga-de-oracle-sistema-de-area-global.html"REA GLOBAL)

Es un conjunto de áreas de memoria compartida que se dedican a un Oráculo "instancia" (un ejemplo es los programas de bases de datos y la memoria RAM).

Sirve para facilitar la transferencia de información entre usuarios y también almacena la información estructural de la BD más frecuentemente requerido.

En los sistemas de bases de datos desarrollados por la Corporación Oracle, el área global del sistema (SGA) forma parte de la memoria RAM compartida por todos los procesos que pertenecen a una sola base de datos Oracle ejemplo. El SGA contiene toda la información necesaria para la operación de la instancia.

 

La SGA se divide en varias partes: 

Buffers de BD, Database Buffer Cache 

Es el caché que almacena los bloques de datos leidos de los segmentos de datos de la BD, tales como tablas, índices y clusters. Los bloques modificados se llamas bloques sucios. El tamaño de buffer caché se fija por el parámetro DB_BLOCK_BUFFERS del fichero init.ora.

 o    Plan de ejecución de la sentencia SQL.

 o    Texto de la sentencia.

 o    Lista de objetos referenciados.

 o    Comprobar si la sentencia se encuentra en el área compartida.

 o    Comprobar si los objetos referenciados son los mismos.

 o    Comprobar si el usuario tiene acceso a los objetos referenciados.

Como el tamaño del buffer suele ser pequeño para almacenar todos los bloques de datos leidos, su gestión se hace mediante el algoritmo LRU.

 

Buffer Redo Log

Los registros Redo describen los cámbios realizados en la BD y son escritos en los ficheros redo log para que puedan ser utilizados en las operaciones de recuperación hacia adelante, roll-forward, durante las recuperaciones de la BD. Pero antes de ser escritos en los ficheros redo log son escritos en un caché de la SGA llamado redo log buffer. El servidor escribe periódicamente los registros redo log en los ficheros redo log. El tamaño del buffer redo log se fija por el parámetro LOG_BUFFER.

 

Área de SQL Compartido, Shared SQL Pool 

En esta zona se encuentran las sentencias SQL que han sido analizadas. El analisis sintáctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si puede reutilizarlas. Antes de analizar una sentencia SQL, Oracle mira a ver si encuentra otra sentencia exactamente igual en la zona de SQL compartido. Si es así, no la analiza y pasa directamente a ejecutar la que mantinene en memoria. De esta manera se premia la uniformidad en la programación de las aplicaciones. La igualdad se entiende que es lexicografica, espacios en blanco y variables incluidas. El contenido de la zona de SQL compartido es:

 

o    Los pasos de procesamiento de cada petición de análisis de una sentencia SQL son:

 o    Si no, la sentencia es nueva, se analiza y los datos de análisis se almacenan en la zona de SQL compartida.

 

También se almacena en la zona de SQL compartido el caché del diccionario. La información sobre los objetos de la BD se encuentra almacenada en las tablas del diccionario. Cuando esta información se necesita, se leen las tablas del diccionario y su información se guarda en el caché del diccionario de la SGA. Este caché también se administra mediante el algoritmo LRU. El tamaño del caché está gestionado internamente por el servidor, pero es parte del shared pool, cuyo manaño viene determinado por el parámetro SHARED_POOL_SIZE.

  

6.1.7 Monitoreo de Base de Datos 

Mediante la auditoría de bases de datos se evaluará:

 

           Definición de estructuras físicas y lógicas de las bases de datos.

 

           Control de carga y mantenimiento de las bases de datos.

 

           Integridad de los datos y protección de accesos.

 

           Estándares para análisis y programación en el uso de bases de datos.

 

           Procedimientos de respaldo y de recuperación de datos.

 


Aspectos Claves

 

           No se debe comprometer el desempeño de las bases de datos

 

           Soportar diferentes esquemas de auditoría.

 

           Se debe tomar en cuenta el tamaño de las bases de datos a auditar y los posibles SLA establecidos.

  


Segregación de funciones

 

El sistema de auditoría de base de datos no puede ser administrado por los DBA del área de IT.




Proveer valor a la operación del negocio

 

           Información para auditoría y seguridad.

 

           Información para apoyar la toma de decisiones de la organización.

 

           Información para mejorar el desempeño de la organización.


5.5 Migración de la Base de Datos

  Problemas de migración de datos con diferentes tipos de bases de datos

5.5.1  Definición

La migración de bases de datos es generalmente una tarea compleja que no sólo supone transferir datos entre tipos de almacenaje y formatos de un servidor de base de datos a otro; sino que también supone reescribir sentencias SQL o incluso procedimientos (SPL) de lógica de negocio.

 

En comparación con los esquemas estándares de migración a mano, ofrecemos una potente gama de herramientas desarrolladas de probada eficacia en complejos módulos de bases de datos relacionales. Estas herramientas y nuestros especialistas pueden asegurar que las transiciones de las bases de datos se realicen perfectamente, independientemente de la naturaleza del sistema.

 

Desde la experiencia, estamos familiarizados con la complejidad, el coste que supone una larga migración de bases de datos y los problemas que aparecen durante el proceso cuando se emplean métodos inapropiados; ya que siempre comprobamos con los clientes potenciales que el uso de nuestras herramientas y métodos pueda ofrecer una ventaja significativa.

 

5.5.2  Herramientas de Migración

 

En comparación con la consultoría estándar de migraciones, la cual puede ofrecer poco más que soporte a la base de datos, nosotros tenemos gran experiencia en escribir grandes aplicaciones para empresas en sintaxis de la base de datos nativa y cross. Además, enseñamos a los equipos de las empresas una metodología y les proporcionamos una potente gama de herramientas para reducir costes y optimizar el proceso de migración.

Estas herramientas incluyen:

*      Herramienta de copia multi-bases de datos con conversión automática desde los tipos de datos (incluyendo tipos de datos geométricos)

*      Comprobación del esquema multi-base de datos

*      Gramática SQL XML

*      Gramática DDL XML

*      Gramática DML XML

*      Gramática SPL XML

*      Gramática Triggers XML

*      Soporte para la conversión de tipos de datos geométricos

 Tipos de migración de datos - Evaluando Software

5.5.3  Copia Multi-Base de Datos

La herramienta de copia puede replicar todos los datos desde una base de datos a una destinación, independientemente del motor, las tablas creadas, los índices, las restricciones y el mapeo de tipos de datos cuando los motores difieren. Con poco esfuerzo, y después del tiempo que supone copiar los datos, se puede ver y explorar los datos en la nueva base de datos. Por supuesto, no se realiza una migración en estos casos.

 

*      Genera estructuras de tablas acorde con los tipos de datos objetivo

*      Desactiva automáticamente triggers y secuencias durante el proceso de copia

*      Instala automáticamente la secuencia asociada después de copiar una tabla

*      Soporta la generación de bases de datos cruzadas rowid

*      Soporta la conversión de tipos de datos geométricos permitiendo una fácil migración de motores espaciales

*      Soporta la construcción de índices post-copia y foreign keys

*      Soporta la compilación de triggers post-copia y SPL

 

5.5.4  Comprobación del Esquema Multi-Bases de Datos

Una vez se empieza una migración, se puede generar un esquema XML desde la base de datos original. Esto permite traducir el modelo de base de datos a cualquier motor.

Sin embargo, ¿qué pasa si el sistema continúa operando e incluso sufre cambios estructurales durante el proceso de migración? La comprobación del esquema compara las bases de datos de tipos diferentes y muestra la diferencia entre estructuras de tablas, claves primarias, foreign keys, índices y restricciones. También, se puede hacer una comparación con el modelo de esquema maestro en XML. En ambos casos, se aplicará una propuesta de cambios para asegurar que se muestra la misma estructura física.

Soporte al Desarrollo, Test, Pre-Producción y Producción

Las herramientas de migración están construidas alrededor de un diccionario de base de datos. El diccionario permite a los programadores almacenar su código (sentencias DML, queries SQL, código SPL, datos de tablas iniciales, etc.), el cual constituye la base de datos de las aplicaciones. Una vez almacenado en el diccionario, un grupo de comandos web o comandos shell permite la compilación, el chequeo o la salida de nuevas actualizaciones para una base de datos o un grupo.

Sintaxis Xml-Xsql

El motor de traducción de triggers DDL, DML, SPL proporciona una estructura con una sintaxis común XML, en la cual los desarrolladores pueden escribir aplicaciones en una sintaxis independiente de la propia del motor de base de datos.

XML-XSQL Syntax Available

DDL

El proceso de copia de una base de datos puede crear automáticamente un modelo XML que genera el Data Definition Language (DDL) de la base de datos. Se pueden ver todas las tablas y objetos definidos en una definición natural XML que permitirá la traducción on-line a la base de datos deseada.

DDL - XML Transformation Sample

DML

Una gramática XML permite escribir sentencias SQL independientes de la base de datos.

Procedimientos (Spl)

La lógica de negocio escrita en procedimientos (SPL), funciones o triggers debe ser reescrita manualmente en XML. Nosotros ofrecemos este servicio o enseñamos como hacerlo. A partir de entonces, se podrá traducir automáticamente la lógica al motor que se desee.

Este paso tiene una mayor ventaja sobre la codificación manual convencional, ya que el motor de traducción Axional XSQL validará y generará el código apropiado sin errores humanos.

El manager de procedimientos (SPL) se encargará del status de compilación en las bases de datos deseadas (desarrollo, test y producción).

Triggers

Si tiene triggers, quizás es conocedor de la complejidad y las diferencias que supone escribir triggers independientes de la base de datos. Como en el caso de los procedimientos (SPL), se puede utilizar gramática XML y el motor de de traducción generará los triggers apropiados para la base de datos deseada.

Tipos de Datos Geométricos

Cuando la base de datos tiene tipos de datos geométricos, constituye un caso especial. Ofrecemos transportabilidad entre Oracle Spatial, DB2 Spatial Extender, Informix Spatial DataBlade y Postgres PostGIS. La gramática DML ofrece una amplia gama de funciones para escribir queries independientes de SQL y el motor de copia DB transferir los datos de forma segura.