¿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.
DentonMatt. (2013). [Moss] [ilustración]. Tomado de http://dentonmattt.tumblr.com/post/48790580995
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.
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:
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.
Tareas de administración
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.
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.
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.
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.
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.
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.
En resumen, el administrador del sistema tiene las siguientes tareas:
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
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.
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.
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.