IMPORTANCIA DE LA AUDITORIA DE BASE DE DATOS Y EL MONITOREO DEL RENDIMIENTO DEL SGBD Administración de bases de datos 20 DE JUNIO DE 2019 INSTITUTO TECNOLOGICO SUPERIOR DE CALKINI EN EL ESTADO DE CAMPECHE Jesús Alejandro Sosa Salazar Introducción ¿Qué es la auditoría de la BD? 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: Quien accede a los datos Cuando se accedió a los datos Desde que tipo de dispositivo/aplicación Desde que ubicación de red Cual fue la sentencia SQL ejecutada Cual fue el efecto del acceso a la base de datos. Es uno de los procesos fundamentales para poyar la responsabilidad delegada a IT por la organización frente a las regulaciones y su entorno de negocios o actividad. Resumen Siempre que hablamos de Tecnologías de la Información, tenemos que tener presente que lo realmente importante para una organización es su información. Por la información es que la inversión en Tecnologías tiene sentido. Por eso, la Auditoría de las Bases de datos es importante, porque son estos repositorios en los que la información de la organización es almacenada. La evolución de las Tecnologías de la Información en el área de Bases de Datos ha evolucionado de depósitos con limitadas o vulnerables características de seguridad e integridad a componentes que proveen altas características para garantizar que los datos de una organización son utilizados para los fines autorizados y válidos, que son accedidos solo por el personal debidamente autorizado y con las medidas de seguridad necesarias para evitar los ataques externos que cada vez son más frecuentes. Establecido este escenario, parecería que nuestros datos están seguros si tenemos la Tecnología de Bases de Datos de última generación y no tenemos nada de que preocuparnos. Premisa falsa. La práctica nos enseña que siempre existen varios factores que deben de verificarse cuando se trata de bases de datos. La verificación independiente de un Auditor de Sistemas ayuda a la Alta Gerencia a garantizar que la Tecnología de Bases de Datos está siendo usada de la mejor forma posible y que no se han cometido acciones u omisiones que ponen en riesgo la integridad y seguridad de nuestros datos. La Auditoría de Sistemas en este contexto, pasa a realizar una evaluación del cumplimiento de los estándares establecidos por el fabricante de la tecnología utilizada, el diseño de la base de datos, la verificación del registro correcto de los datos y el seguimiento a los procedimientos de Administración de Bases de Datos. Abstract Whenever we talk about Information Technology, we have to keep in mind that what is really important for an organization is its information. For the information is that the investment in Technologies makes sense. Therefore, the Audit of the Databases is important, because these are the repositories in which the information of the organization is stored. The evolution of Information Technologies in the area of Databases has evolved from deposits with limited or vulnerable security and integrity features to components that provide high features to ensure that the data of an organization is used for authorized and valid purposes. , which are accessed only by duly authorized personnel and with the necessary security measures to avoid external attacks that are becoming more frequent. Established this scenario, it would seem that our data is safe if we have the latest generation of Databases Technology and we have nothing to worry about. False premise. The practice teaches us that there are always several factors that must be verified when dealing with databases. The independent verification of a Systems Auditor helps Senior Management to ensure that Database Technology is being used in the best possible way and that no actions or omissions have been committed that put the integrity and security of our data at risk. . The Systems Audit in this context, goes to perform an evaluation of compliance with the standards established by the manufacturer of the technology used, the design of the database, the verification of the correct registration of the data and the follow-up to the procedures of Administration of Databases. Objetivo Disponer de mecanismos que permitan tener trazas de auditoria completa y automáticas relacionadas con el acceso a las bases de datos incluyendo la capacidad de generar alertas. Justificación Como DBA una de las responsabilidades es supervisar el espacio en disco. Siempre hay que asegurarse de que se tiene suficiente para sus bases de datos, copia de seguridad de bases de datos y cualquier otro tipo de archivos que se va a almacenar en el servidor. Si no controla su espacio en disco y se asegura de que tienes espacio suficiente, con el tiempo uno de sus procesos críticos de bases de datos o componentes va a fracasar porque no se puede asignar el espacio en disco que necesita. Toda la información financiera de la organización reside en bases de datos y deben existir controles relacionada con el acceso a las mismas. Se debe poder demostrar la integridad de la información almacenada en la base de datos. Métodos y materiales Para poder realizar una investigación con la información correcta y no caer en redundancias, empleamos el método de investigación documental que nos servirá como guía para obtener los resultados deseados y estos sean los esperados a lo largo de las etapas de la metodología. Teniendo como base lo siguiente: 1. 2. 3. 4. 5. 6. Elección del tema. Acopio de la bibliografía básica sobre el tema. Lectura de material. Delimitación del tema. Lectura minuciosa de la bibliografía. Redacción del trabajo final. Es importante destacar las herramientas utilizadas a lo largo de este trabajo para determinar lo alcanzable a partir de lo disponible. Las herramientas utilizadas son: Equipo de cómputo Internet Procesador de Texto Monitoreo de espacio libre en discos Como DBA una de las responsabilidades es supervisar el espacio en disco. Siempre hay que asegurarse de que se tiene suficiente para sus bases de datos, copias de seguridad de bases de datos y cualquier otro tipo de archivos que va a almacenar en el servidor. Si no controla su espacio en disco y se asegura de que tienes espacio suficiente, con el tiempo uno de sus procesos críticos de bases de datos o componentes va a fracasar porque no se puede asignar el espacio en disco que necesita. Dentro de SQL Server 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 regresa todos los discos a los que tiene acceso SQL Server y su espacio disponible en Megabytes. Es muy sencillo utilizarlo, solo basta con ejecutar el comando xp_fixeddrives de vez en cuando desde el Analizador de consultas para revisar la cantidad de espacio libre, aunque este método consume demasiado tiempo para los administradores de bases de datos. Un método mejor sería automatizar la ejecución de este comando periódicamente para revisar la cantidad de espacio libre. Monitoreo de log Monitorear el log regularmente puede ayudarnos a resolver varios problemas dentro de nuestros sistemas, ya que este puede indicarnos si existen demasiadas transacciones realizadas por una sola aplicación, que podría resultar en un mal diseño o simplemente la necesidad de planear mejor los recursos de log en nuestro servidor de base de datos. Es muy importante tener en cuenta que, si el log de transacciones llegara a saturarse, SQL Server no podrá realizar más cambios dentro de nuestra base de datos. La manera de monitorear un log de transacciones puede llevarse a cabo de 2 maneras, una de ellas es mediante un comando desde el analizador de consultas y la otra utilizando los contadores de SQL Server desde el sistema operativo. Desde el analizador de consultas ejecutar el comando DBCC SQLPERF (LOGSPACE). Utilizando los contadores de SQL Server que se describen a continuación. Algunas de las situaciones por la que podría presentarse mucha actividad en el log de transacciones y saturarlo son: Cargar información en una tabla que tiene índices. SQL Server almacena en el log todos los inserts y cambios en los índices. Cuando se carga en tablas que no tienen índices SQL Server solo reserva extents para el log. Transacciones que realizan muchas modificaciones (INSERT, UPDATE, DELETE) a una tabla en una sola transacción. Esto generalmente ocurre cuando la sentencia WHERE es muy general, causando que muchos registros sean modificados. Expandiendo el log de transacciones Expandir un log de transacciones debe de realizarse solamente si en verdad es requerido por la aplicación y no solo por el hecho de asignar más espacio, ya que para ello existen los respaldos del log de transacciones en donde se vacía el espacio ocupado del log. Para asignar espacio de log a una base de datos pues realizarse mediante el SQL Server Enterprise Manager o la sentencia ALTER DATABASE, en este caso hablaremos solamente de la sentencia ALTER DATABASE. Monitoreo de memoria compartida 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. SGA de Oracle (Sistema de Á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 requerida. 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: 1.- Buffers de BD, Database Buffer Cache 2.- Buffer Redo Log 3.- Área de SQL Compartido, Shared SQL Pool Buffers de BD, Database Buffer Cache Es el caché que almacena los bloques de datos leídos 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. ◦ Plan de ejecución de la sentencia SQL. ◦ Texto de la sentencia. ◦ Lista de objetos referenciados. ◦ Comprobar si la sentencia se encuentra en el área compartida. ◦ Comprobar si los objetos referenciados son los mismos. ◦ 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 leídos, su gestión se hace mediante el algoritmo LRU. Buffer Redo Log Los registros Redo describen los cambios 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 análisis 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 mantiene en memoria. De esta manera se premia la uniformidad en la programación de las aplicaciones. La igualdad se entiende que es lexicográfica, espacios en blanco y variables incluidas. El contenido de la zona de SQL compartido es: Los pasos de procesamiento de cada petición de análisis de una sentencia SQL son: 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 tamaño viene determinado por el parámetro SHARED_POOL_SIZE. Conclusión Es probable que la informática abarque muchas áreas en nuestra vida, pero no hay duda de que cada área tiene a un profesional que se encarga de estudiar y adquirir los conocimientos necesarios para desempeñar una función específica. Como se especificó anteriormente, el conocer y saber cómo los sistemas gestores de bases de datos gestionan la información es de suma importancia para poder hacer buen uso tanto de los archivos como los distintos comandos que existen dentro del gestos. Como administrador de copia de seguridad, su trabajo principal es hacer copias de seguridad y vigilancia para la protección de datos. Una copia de seguridad es una copia de los datos de una base de datos que se puede utilizar para reconstruir los datos. Una copia de seguridad puede ser una copia de seguridad física o una copia de seguridad lógica. De igual manera los archivos de registros o logs son parte fundamental no solo de un sistema gestor de bases de datos, si no también de casi cualquier programa informático que requiera almacenar cierta información de registro para funcionar correctamente y poder llevar un control interno de las distintas actividades que se han realizado. Referencias it.aut.uah.es. Gestión De Redes (2004/2005) http://it.aut.uah.es/mar/gestion/tema2.pdf info-ab.uclm.es. Mantenimiento y monitorización de redes TCP/IPwww.infoab.uclm.es/asignaturas/42524/teoria/ar2Tema7x2.pdf det.uvigo.es. Gestión Y Planificación De Redes Con Sistemas Inteligentes www.det.uvigo.es/~mramos/gprsi/gprsi2.pdf Ortiz, V. M. (13 de 30 de 2019). Funciones de la administracion de redes. Obtenido de https://sites.google.com/a/itdurango.edu.mx/10040372/home/administracion-deredes/unidad-i Santana, E. C. (13 de 03 de 2019). academia.edu. Obtenido de https://www.academia.edu/9583773/Administraci%C3%B3n_de_Redes linuxdata.com.ar. Introducción a la Administración de una Red Local basada en Internet http://www.linuxdata.com.ar/index.php?idmanual=tutorialadmionredss.html&manu ale=1