Administración de Bases de Datos

Unidad de Apoyo para el Aprendizaje

Iniciar

Introducción

¿Qué papel juega el usuario administrador de una base de datos?

Para mantener en estado adecuado una base de datos, el papel que desempeña el usuario administrador es fundamental para garantizar el buen desempeño de cualquier base de datos.

En este tema se abordarán diversos tópicos referentes a los procedimientos de respaldo y recuperación, administración de usuarios, grupos y aspectos relacionados con otorgar o revocar privilegios de acceso a la base de datos.



Hombre escribiendo en computadora

DentonMatt. (2013). [Moss] [ilustración]. Tomado de http://dentonmattt.tumblr.com/post/48790580995

El estudio de este tema te permitirá:

Identificar los riesgos, acciones de mitigación, solución de problemas y seguridad de una base de datos, a través de las acciones que realiza un administrador, con el propósito de conocer los beneficios de la administración eficiente de una base de datos.

El administrador de la base de datos


El administrador de la base de datos, database administrator o DBA, es la persona responsable de instalar el software de la base de datos con mecanismos para hacer cumplir una política de seguridad para un site.

Es posible instalar más de una base de datos en una misma máquina; éste término denota, de forma más precisa, cualquier conjunto concreto de programas binarios y bases de datos instaladas.

Entre las actividades que realiza un administrador de una base de datos, se encuentran el respaldo y recuperación, administración y autenticación de usuarios.


Respaldo y recuperación

Como medida de mitigación de riesgo de una posible pérdida de información, nos referiremos al procedimiento de respaldo y recuperación de una base de datos. Esta función es responsabilidad del DBA, en la cual, los respaldos se efectuarán diarios, semanales, quincenales y mensuales. La recuperación la solicitará el analista, el líder de proyecto o el programador de la aplicación, en los casos donde hubo algún contratiempo.

Deben realizarse copias de seguridad de las bases de datos regularmente. Debido a que los diversos manejadores de base de datos gestionan sus propios archivos en el sistema, no se recomienda confiar en la copia de seguridad del sistema para las copias de respaldo de las bases de datos; no hay garantía de que los archivos estén en un estado seguro que permita su uso después de la restauración.

Administración de usuarios


Ahora abordaremos lo relativo a las tareas de administración para prevenir accesos u acciones no autorizados a la información almacenada en la base de datos. En cualquier sistema es necesaria la seguridad, así pues, esta necesidad se acentúa cuando la base de datos es multiusuario. Será necesario, como medida mínima, establecer la autenticación y administración de usuarios; la administración de privilegios y funciones; la administración de contraseñas de usuario; y el establecimiento de límites de recursos de la base de datos.

Un ejemplo claro de la administración de usuarios lo podemos ver cuando un corporativo o empresa requiere cambiar las contraseñas; los motivos pueden ser:

CPU

OpenClipart-Vectors. (2013). [Equipo] [imagen].
Tomada de https://pixabay.com/es/equipo-servidor-herramientas-161501/

1. Políticas corporativas y mejores prácticas. Cuando se solicita periódicamente a usuarios y administradores que cambien sus contraseñas.

2. Las contraseñas se cambian todas a la vez antes de que un sistema esté disponible para los usuarios. Este proceso puede afectar a varios usuarios (los propietarios de cada rol en el sistema).


Ambos cambios de contraseña exigen que se reinicie el servidor de aplicaciones y, en consecuencia, producen una parada del sistema. Con una planificación adecuada, se pueden programar los cambios de contraseña que causan interrupciones durante las paradas previstas.


Autenticación de usuarios

Cualquier usuario que intente conectarse a la base de datos debe hacerlo con un nombre de usuario determinado para que, de este modo, el motor de la base de datos autentique a dicha persona como alguien autorizada para usar esa cuenta. La base de datos utiliza autenticación de contraseña, autenticación de sistema operativo y autenticación global del usuario.

La autenticación de contraseña consiste en un nombre de usuario y una contraseña asociada; es típica en entornos distribuidos y, sobre todo, en sistemas cliente-servidor. La autenticación de sistema operativo, típica en sistemas de terminales con conexión directa al servidor, consiste en que la base de datos autentica un nombre de usuario usando el sistema operativo de la computadora que ejecuta el servidor de base de datos. En el caso de la autenticación global de usuario, el motor autentica un nombre de usuario usando un servicio de red externo.

La base de datos permite crear un usuario con autenticación de contraseña, mediante la sentencia CREATE USER, cuya sintaxis es la siguiente.

  1. SQL> CREATE USER pba
  2. IDENTIFIED BY suerte
  3. DEFAULT TABLESPACE demo
  4. QUOTA 10M ON demo
  5. TEMPORARY TABLESPACE temp
  6. QUOTA 5M ON system
  7. PROFILE app_user
  8. PASSWORD EXPIRE


Tareas de administración

Nombres de usuario y grupos

Para añadir un usuario o un grupo de usuarios a un nuevo grupo; uno de los usuarios debe crear el grupo y añadir al resto a ese grupo.

Agregar y eliminar usuarios

CREATE USER permite que usuarios específicos accedan a la base de datos. DROP USER elimina usuarios y previene que éstos accedan a la base de datos.

Estas órdenes sólo afectan a los usuarios respecto a la base de datos; no tienen efecto en otros privilegios del usuario o en su estado con respecto al sistema operativo.

Asignación de privilegios

Los grupos sirven para simplificar la asignación de privilegios. Los privilegios ordinarios deberán ser asignados a un único usuario, uno cada vez. Esto puede resultar tedioso si los usuarios a los que hay que asignar los mismos accesos a una gran variedad de objetos de base de datos, es muy compleja.

Los grupos son creados para evitar este problema. Un grupo requiere un nombre y puede ser creado vacío (sin usuarios). Una vez creado, los usuarios —que se pretende compartan permisos comunes— son añadidos todos al grupo, y quedan asociados a éste por su número de miembro. Los permisos en los objetos de base de datos son, entonces, asignados al grupo en vez de a cada uno de los miembros del grupo. Para un sistema con muchos usuarios y bases de datos, los grupos hacen que la asignación de permisos sea más cómoda para el administrador. Los usuarios pueden pertenecer a cualquier número de grupos, o a ninguno.

Revisión de usuarios pendientes de registro

Cuando un usuario solicita el registro, éste queda almacenado en una tabla temporal. El administrador, periódicamente, debe revisar la lista de usuarios pendientes de registro y, previa comprobación de datos, proceder al alta de éstos.

Alta manual en el registro de usuarios

Alternativamente, el administrador puede proceder a realizar el alta de un usuario de forma manual, sin intervención de éste. Para ello debe conocer previamente los datos que identifican al usuario.

Eliminación de registro de usuarios

El nombre es autoexplicativo. Al eliminar a un usuario del sistema, toda la información generada por éste, es, dependiendo del caso, bien eliminada a su vez, o bien asignada al usuario con identificador cero (nadie).

Se definen los siguientes niveles en orden creciente de privilegios.

  • Usuario autorizado a solicitar nuevas consultas.
  • Usuario con derecho a crear consultas sin autorización ulterior.
  • Administrador con derecho a añadir usuarios y consultas pendientes de aprobación. Derecho a crear nuevas listas de usuarios.
  • Derecho a modificar o borrar usuarios, listas y consultas.
  • Derecho de acceso a la consola de SQL.



Tareas del administrador


En resumen, el administrador del sistema tiene las siguientes tareas:

  • Instalar y configurar el sistema.
  • Registrar, en caso necesario, el sistema en los organismos competentes.
  • Revisar y, en su caso, dar de alta las solicitudes de registro y alta de consultas.
  • Crear/editar/borrar y la asignación de usuarios a éstas.
  • Asignar privilegios a los diversos usuarios.
  • Supervisar funcionamiento y logs del sistema.

Existen, además, tareas que se realizan de forma periódica como el backup (procedimientos de respaldo y recuperación), registro de transacciones y privilegios.


Tareas del administrador

Procedimientos de backup y recuperación

Si bien el script que se ejecuta bajo estas órdenes realiza automáticamente las tareas de backup, en ocasiones es necesario realizar dicha tarea a mano. Para ello, deberemos entrar en la base de datos como administrador de la misma.

Algunas bases de datos disponen de distintos mecanismos de protección para situaciones de caída del sistema, fallas en el disco duro, etc. La pérdida de un archivo de base de datos importante, debido a un error de operación, la alteración (corrupción) de un archivo o una falla en el disco, son problemas serios para los que hay que estar preparados. Por ejemplo, para restaurar el archivo de datos perdido hay que tener una copia de seguridad de la base de datos que contenga el archivo de la base de datos eliminado. Asimismo, para recuperar todo el trabajo efectuado desde que se utilizó la copia de seguridad, hay que tener los grupos de registros de transacciones necesarios. Los mecanismos de recuperación y copia de seguridad deben recuperar la base de datos de cualquier tipo de pérdida de archivos.

Registro de transacciones

Para mostrar la configuración actual de los registros de transacciones de la base de datos, nos conectamos a la misma con privilegios de administrador. Una sesión de administrador privilegiada tiene acceso a los privilegios SYSDBA y SYSOPER.

Con SYSOPER se puede iniciar y cerrar un servidor de base de datos, montar, abrir, cerrar, copiar y recuperar una base de datos, así como administrar su estructura de registro de transacciones. Con SYSDBA se puede llevar a cabo cualquier operación de base de datos y conceder cualquier privilegio de sistema a otros usuarios. Para establecer una sesión de administrador privilegiada SYSDBA para la instancia de inicio con la cuenta SYS.

Privilegios

Una vez creados los usuarios será necesario dotarlos de privilegios para que puedan realizar operaciones específicas en la base de datos. Estos privilegios suelen clasificarse en privilegios del sistema (permiten al usuario realizar algún tipo de operación que afecta a todo el sistema) y privilegios de objeto (permiten al usuario realizar operaciones específicas sobre objetos específicos de la base de datos como tablas, vistas, etc.). Para conocer la lista y nomenclatura de todos los privilegios es necesario acudir al manual de referencia de la base de datos de la instalación donde trabajas.

Los privilegios de sistema más comunes son CREATE SESSION (conexión al servidor de base de datos y establecimiento de sesión); CREATE TABLE (crear una tabla en el esquema propio); CREATE ANY TABLE (crear una tabla en cualquier esquema de la base de datos); SELECT ANY TABLE (hacer peticiones a cualquier tabla de la base de datos); EXECUTE ANY PROCEDURE (ejecutar cualquier procedimiento almacenado, función o componente de paquete de base de datos); y ALTER DATABASE (modificar la estructura física y la capacidad del sistema de base de datos).

Los privilegios de objeto dependen del tipo de objeto. Para una tabla, los privilegios típicos son SELECT, INSERT, UPDATE, DELETE, ALTER, INDEX y REFERENCES. Para una vista, los privilegios más comunes son SELECT, INSERT, UPDATE y DELETE. Para una secuencia, los privilegios más comunes son SELECT y ALTER; y para un procedimiento, el privilegio más común es EXECUTE.

La sentencia que permite administrar privilegios es GRANT. Su sintaxis es la siguiente:

GRANT {privilegios_sistema | privilegios_objeto};


Actividad 1: Respaldo y recuperación de una base de datos

Existen actividades relativas a los procedimientos de respaldo y recuperación de una base de datos que se requieren hacer por un DBA.

La siguiente actividad permitirá verificar los conocimientos adquiridos.

Responde Verdadero o Falso de acuerdo con la actividad a realizar, cuando se hacen actividades de respaldo o recuperación de una base de datos.


Actividad 2. Comandos SQL para administración de una Base de Datos

SQL prevé ciertas sentencias que afectan directamente una base de datos, permitiendo su manipulación.

La siguiente actividad permitirá verificar el conocimiento de dichos comandos. Asocia cada sentencia SQL con su correlato, el cual describe la funcionalidad de cada sentencia.


Autoevaluación. Comandos SQL para administración y respaldo

El conocimiento de los comandos de SQL para administración de usuarios y respaldo de bases de datos permitirá un óptimo manejo de la misma.

A continuación, indica cuál es el comando correcto según el enunciado.

Fuentes de información

Básicas

Bibliografía


Kendall, K. E. y Kendall, J. E. (2005). Análisis y diseño de sistemas (6.ª ed.). México: Prentice Hall.

Coronel, C., Morris, S. y Rob, P. (2011). Bases de datos. Diseño, implementación y administración. (J. H. Romo, trad.). México: Cengage Learning.



Documentos electrónicos


Blázquez, M. (2014, 20 de febrero). Fundamentos y Diseño de Bases de Datos [Mensaje en blog]. Consultado el 30 de octubre de 2017 de http://ccdoc-basesdedatos.blogspot.mx/2013/02/modelo-entidad-relacion-er.html

Rojas, A. y Méndez, C. (2016). Desarrollo de aplicaciones en manejadores de bases de datos relacionales. Apunte electrónico [Versión electrónica]. México: SUAYED-UNAM-FCA. Consultado el 17 de octubre de 2017 de http://fcasua.contad.unam.mx/apuntes/interiores/docs/20172/informatica/5/apunte/LI_1547_18116_A_Desarrollo_aplicaciones_BD_v1.pdf


Complementarias

Mendelzon, A. (2000). Introducción a las bases de datos relacionales. México: Pearson Educación.

Connolly, T. M. y Begg, C. (2005). Sistemas de bases de datos (4.ª ed.). México: Pearson Educación-Addison Wesley.


Cómo citar