Introducción

Es importante desarrollar una política de seguridad para cada base de datos. La política de seguridad establece métodos para proteger su base de datos de destrucción accidental o maliciosa de datos o daños a la infraestructura de la base de datos.

Cada base de datos puede tener un administrador, denominado administrador de seguridad, que es responsable de implementar y mantener la política de seguridad de la base de datos.

Con la presente unidad académica se pretende brindar a los estudiantes fundamentos teóricos y prácticos para la gestión de roles, usuarios, privilegios, copias de seguridad y seguimiento de actividad a la base de datos con el fin de establecer mecanismos de seguridad acordes a las exigencias tecnológicas del mundo actual.

Propósitos de aprendizaje

Propósito general

Facilitar a los estudiantes teorías y estructuras prácticas para la creación y administración de usuarios en un sistema de gestión de bases de datos.

Propósitos específicos

  • Proporcionar al estudiante los fundamentos teórico prácticos para la creación y gestión de grupos y roles en el motor de bases de datos.
  • Dotar al estudiante de conocimientos prácticos para la creación y administración de usuarios y privilegios en el motor de bases de datos.
  • Proveer al estudiante técnicas avanzadas para supervisión de la actividad de los usuarios.
  • Proporcionar al estudiante conocimientos y técnicas para la realización y gestión de copias de seguridad de la base de datos.

Gestión de roles

PostgreSQL es un sistema de gestión de bases de datos de código abierto que utiliza el lenguaje de consultas SQL. PostgreSQL es una poderosa herramienta que se puede usar para administrar aplicaciones pequeñas, medianas y grandes.

PostgreSQL gestiona permisos a través del concepto de "roles". Los roles son diferentes de los permisos tradicionales de estilo Unix en que no hay distinción entre usuarios y grupos. Los roles se pueden manipular para parecerse a ambas convenciones, pero también son más flexibles.

El concepto de roles contiene los conceptos de "usuarios" y "grupos". Cualquier rol puede actuar como un usuario, un grupo o ambos.

Gestión de roles

Creación de roles

Los roles de la base de datos están conceptualmente completamente separados de los usuarios del sistema operativo. En la práctica, puede ser conveniente mantener una correspondencia, pero esto no es obligatorio. Los roles de la base de datos son globales en una instalación de clúster de base de datos (y no por una base de datos individual). Para crear un rol se puede usar el comando CREATE ROLE.

En otras palabras, los roles se pueden ver como grupos y usarse para hacer que los privilegios sean más fáciles de administrar. Hay dos aspectos que hacen que esto sea diferente de los grupos de tipo unix: es posible usar una jerarquía de roles de varios niveles (mientras que los grupos de Unix son planos) y el otro factor es la herencia. A continuación, se lista los diferentes tipos de roles que se pueden asignar en PostgrSql.

De acuerdo con lo anterior, practiquemos con esta actividad los tipos de roles que se pueden asignar.

Gestión de roles

Membresías de roles

Con frecuencia es conveniente agrupar a los usuarios para facilitar el manejo de los privilegios: de ese modo, se pueden otorgar privilegios o revocarlos a un grupo como un todo. En PostgreSQL, esto se hace creando un rol que represente al grupo y luego otorgue membresía en el rol de grupo a roles de usuario individuales (Postgresql.org, 2017)

También puede otorgar membresía a otros roles de grupo (ya que no existe realmente ninguna distinción entre los roles de grupo y los que no son de grupo). La base de datos no le permitirá configurar ciclos circulares de membresía. Además, no está permitido otorgar membresía en un rol a PÚBLICO. Los miembros de un rol de grupo pueden usar los privilegios del rol de dos maneras: SET ROLE e INHERIT.

Gestión de roles

Eliminación de roles

Debido a que los roles pueden poseer objetos de base de datos y pueden tener privilegios para acceder a otros objetos, eliminar un rol a menudo es una tarea dispendiosa. Cualquier objeto propiedad del rol se debe eliminar o reasignar a otros propietarios; y todos los permisos otorgados al rol deben ser revocados con anterioridad (Postgresql.org, 2017).

Alternativamente, el comando REASIGN OWNED se puede usar para reasignar la propiedad de todos los objetos propiedad del rol que se va a eliminar a un único rol. Debido a que REASIGN OWNED no puede acceder a objetos en otras bases de datos, es necesario ejecutarlo en cada base de datos que contenga objetos propiedad de la función.

Una vez que cualquier objeto valioso ha sido transferido a nuevos propietarios, cualquier objeto restante propiedad del rol a ser eliminado se puede eliminar con el comando DROP OWNED.

Gestión de usuarios

Las versiones de PostgreSql vienen con un usuario 'postgres' con privilegios completos sobre toda la instancia. Para agregar un usuario se necesita usar un usuario de postgres con la posibilidad de agregar usuarios (un superusuario). En la mayoría de los casos, este será el usuario postgres, que es el superusuario inicial. Cuando agrega un usuario puede optar por darle al nuevo usuario dos poderes adicionales; la capacidad de crear nuevas bases de datos y la capacidad de crear nuevos usuarios.

El comando CREATE USER le permite configurar estos usando opciones de línea de comando. -a le permite al usuario agregar nuevos usuarios y-Impide que lo haga. Del mismo modo, -d y -D les permite o les impide crear bases de datos. La otra opción que probablemente quiera utilizar es el indicador -p para solicitar una contraseña para el nuevo usuario. Esto es importante si tiene la intención de utilizar la autenticación basada en contraseña, ya que, si no proporciona una contraseña, será NULL y todas las contraseñas serán rechazadas.

PostgreSQl utiliza el comando ALTER USER para modificar cualquier característica de un usuario.

Con la aplicación PGAdmin también es posible crear usuarios de forma gráfica. Con el fin de reforzar este tema, estudiemos el siguiente video.

Gestión de usuarios

Gestión de grupos

Los grupos son completamente opcionales en postgresql. Solo se usan para simplificar la aplicación y revocación de privilegios para el administrador de db, y los usuarios no necesitan ser miembros de ningún grupo. Generalmente se utilizan para facilitar la administración de privilegios.

A diferencia de la creación de usuarios, solo se puede crear grupos usando sentencias SQL. Para visualizar los grupos creados en PostgreSql debemos consultar la tabla pg_group.

Gestión de copias de seguridad

Las copias de seguridad de la base de datos crean copias de un sistema de datos completo en un sistema alternativo seguro y protegido.

El DBA debe estar preparado para situaciones en las que una falla afecta la disponibilidad, integridad o usabilidad de una base de datos. Reaccionar a las fallas y las interrupciones del servicio es un componente clave del trabajo del DBA. La capacidad del DBA para reaccionar en consecuencia depende directamente de que tenga un enfoque bien planificado para la copia de seguridad y la recuperación de la base de datos.

Par nuestro caso de estudio, PostgreSQL proporciona diferentes formas de respaldar y restaurar sus bases de datos. Con PostgreSQL, las copias de seguridad pueden ser completas, incrementales o continuas, y pueden estar en el nivel lógico o del sistema de archivos. La recuperación puntual es posible a partir de copias de seguridad incrementales. PostgreSQL incluso admite una función llamada líneas de tiempo, que es una especie de historial de bifurcaciones de sus copias de seguridad y restauraciones.

A continuación, se ilustrarán varias alternativas para realizar copias de seguridad de la base de datos y también para exportar solo algunos objetivos específicos.

Gestión de copias de seguridad

Backup por comandos

Una de las principales opciones para realizar copias de seguridad en PostgrSql son los comandos Pg_Dump y Pg_Restore. El primero permite realizar una copia de seguridad completa con gran consistencia mientras que el segundo permite recuperar cualquier copia de seguridad realizada con anterioridad.

Gestión de copias de seguridad

Exportar datos

Otra de las opciones que tienen los administradores de las bases de datos, es exportar datos específicos a un formato particular. Por ejemplo, en PostgreSql es posible exportar los datos de una tabla en particular a un archivo de excel o a un archivo CSV. Para ilustrar esta opción, se presenta el video que acompaña esta pantalla, en el cual se realizará el Export de la tabla productos a dos archivos con formatos diferentes: Excel y CSV.

Actividad de aprendizaje

Actividad de Aprendizaje

Repasa lo aprendido asignando privilegios a un usuario en esta actividad.

Material
de apoyo

Resumen

Durante la cuarta actividad, revisamos todos los conceptos relacionados con la gestión de grupos, roles, usuarios y copias de seguridad. Estos elementos permitirán a los futuros administradores de bases de datos, establecer políticas y estrategias para la creación de usuarios y la asignación de privilegios sobre los diferentes objetos de la base de datos.

En esta unidad se resaltaron aspectos importantes sobre la seguridad de un sistema de información. La data producida de cada fuente de información y alojada en un SGBD son el aspecto más importante de las empresas.

Es una tarea fundamental de todo administrador de base de datos respaldar la toda la información existente, pero mucho más importante diseñar planes de recuperación que se activen ante una posible falla. En la actualidad es muy común encontrar intrusos que podrían bloquear el sistema o generar códigos maliciosos que afecten la integridad de la información.

Caso de estudio

Evalúa lo aprendido desarrollando la siguiente actividad, la cual se basa en el mejoramiento de un sistema de gestión.

Bibliografía ()

    Referencias Web