Herramientas de usuario

Herramientas del sitio


bloque5:administracion

¡Esta es una revisión vieja del documento!


Administración de Sistemas Gestores de BBDD

Administración de Usuarios

Una de las funciones del SGBD es la de proporcionar seguridad en el acceso a los datos a través de mecanismos de control de acceso.

En SQL, y así lo hacen todos los SGBD relacionales, se sigue un modelo Usuario-Privilegio para otorgar acceso a los objetos de la Base de Datos. Existen una serie de privilegios predefinidos y es el administrador del SGBD el encargado de asignar o no los privilegios 1) a los usuarios sobre determinados objetos (tablas, procedimientos, . . .).

Supongamos que somos los administradores de un SGBD MySQL y tenemos que proporcionar acceso a una Base de Datos para una aplicación biblioteca a un desarrollador de mi compañía:

-- Si no hemos creado la base de datos, podemos hacerlo ahora
CREATE DATABASE biblioteca;
 
-- Crea el usuario asignándole contraseña
CREATE USER 'desarrollador' IDENTIFIED BY 'mipassword';
 
-- Indicando el host de conexion del usuario
-- Desde cualquier host (igual que si se omite)
CREATE USER 'desarrollador'@'%' IDENTIFIED BY 'mipassword';
 
-- Usuario para conectarse localmente
CREATE USER 'desarrollador'@'localhost' IDENTIFIED BY 'mipassword';
 
-- Usuario para conectarse remotamente
CREATE USER 'desarrollador'@'146.167.34.15' IDENTIFIED BY 'mipassword';
 
-- Ver los usuarios 
SELECT 'desarrollador' FROM mysql.user;
SELECT * FROM mysql.user;

Permisos y privilegios

Conceder privilegios sobre un objeto: GRANT

Permite conceder privilegios sobre un objeto a un usuario de la Base de Datos.

    GRANT <privilegio>
    ON <objeto>
    TO <usuario>
    [WITH GRANT OPTIONS]

Revocar privilegios sobre un objeto: REVOKE

Permite eliminar el privilegio sobre un objeto a un usuario.

    REVOKE <privilegio>
    ON <objeto>
    FROM <usuario>

Ejemplos:

-- Uso sin permisos para acceder desde local
mysql> GRANT USAGE ON *.* TO 'user'@localhost IDENTIFIED BY 'pass';
 
-- Uso sin permisos para acceder desde remoto
mysql> GRANT USAGE ON *.* TO 'user'@'%' IDENTIFIED BY 'pass';
 
-- Conceder todos los privilegios sobre una base de datos en local
GRANT ALL privileges ON `mibd`.* TO 'user'@localhost;
 
-- Privilegios desde remoto
GRANT ALL privileges ON `mibd`.* TO 'user'@'%';
 
-- Mostrar privilegios
mysql> SHOW GRANTS FOR 'user'@localhost; 
 
-- Eliminar privilegios
REVOKE ALL PRIVILEGES ON *.* FROM 'user'@localhost;
REVOKE USAGE ON *.* FROM 'user'@localhost;
 
-- Aplicar los cambios realizados
FLUSH PRIVILEGES;
 
-- Verificar permisos
mysql> SHOW GRANTS FOR 'user'@localhost;

Arquitectura Cliente-Servidor

MySQL funciona únicamente bajo la arquitectura cliente-servidor. Esto quiero decir que una vez iniciado MySQL la única forma de gestionarlo es realizando una conexión desde un cliente. Para ello necesitamos unos datos de conexion, principalmente 4:

  • Dirección IP del servidor
  • Puerto de conexión: el puerto habitual de funcionamiento de MySQL es 3306.
  • Usuario: siempre necesitamos un usuario para conectarnos.
  • Contraseña: necesitamos la contraseña de ese usuario.

Rendimiento de acceso a datos

Bases de Datos Distribuidas


© 2025 Fernando Valdeón

bloque5/administracion.1633216439.txt.gz · Última modificación: 2024/09/16 15:37 (editor externo)