Sei sulla pagina 1di 4

SEGURIDAD EN BASE DE DATOS

Seguridad Interna
La seguridad interna normalmente se refiere a tareas de protección del directorio de datos de los
ataques de los titulares de otras cuentas en el mismo servidor.

 Mantenimiento de archivos de log. En todo DBMS existen archivos log, que registran la actividad
sobre la BD
 Copias de seguridad. Permiten salvar un estado de los datos seguro y fiable en un determinado
instante de tiempo.
 Mantenimiento y Recuperación de tablas. A veces es necesario verificar la integridad estructural
de las tablas. Es posible usar CHECK TABLE o REPAIR TABLE en el caso de tablas
MyISAM
 Recuperación de una BD. La restauración de una BD puede ser a través de la copia de seguridad.
 Bloqueo de Tablas. Se tienen comandos para evitar que otros clientes escriban en la tabla mientras
está siendo verificada o reparada.
 // SE BLOQUEA LA TABLA ANTE INTENTOS DE ESCRITURA
mysql> LOCK TABLE nombre_ tabla READ;
 // SE PASAN LOS CAMBIOS A DISCO
mysql> FLUSH TABLES; -- para vaciar cambios aun en memoria al disco
… Verificación de tablas …
 // SE DESBLOQUEA LA TABLA
mysql> UNLOCK TABLE;
Seguridad Externa
La seguridad externa se refiere a la protección contra los ataques al servidor MySQL
procedentes de las conexiones de red que realizan los clientes que se conectan desde fuera
intentando acceder a la base de datos.
Para evitar en la medida de lo posible los ataques de todos estos personajes, el sistema deberá tener
activas por lo menos estas medidas de seguridad:

 Un cortafuegos
 Tablas de permisos del SO.
 Archivos de estado del DBMS.
Sistema de privilegios.
La función primaria del sistema de privilegios del DBMS es autenticar un usuario conectándose desde
un equipo dado, y asociar dicho usuario con privilegios en una base de datos tales como SELECT,
INSERT, UPDATE, y DELETE.
El sistema de privilegios asegura que todos los usuarios pueden ejecutar sólo la operación permitida
a los mismos. Como usuario, cuando se conecta a un servidor de BD, su identidad se determina
mediante el equipo desde el que se conecta y el nombre de usuario que especifique. Cuando efectúe
peticiones tras conectar, el sistema le otorga privilegios acorde a su identidad y lo que quiera hacer.
AUTENTICACION DE USUARIOS Y GESTION DE PRIVILEGIOS
En cualquier sistema es necesaria la seguridad y esta necesidad se acentúa cuando el sistema es
multiusuario será necesario como mínimo 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.

AUTENTICACION DE USUARIOS
cualquier usuario que intente conectarse a la base de datos debe hacerlo con un nombre de usuario
determinado para que el DBMS autentique que dicha persona esta autorizada a usar la cuenta. cada
usuario debe obtener acceso al DBMS a través de una cuenta de inicio de sesion que establece su
capacidad para conectarse (autenticación).
VALIDACION DE PERMISOS
existen cinco tablas de concesión, cuyos nombre son: user (contiene los usuarios que pueden
conectar con el servidor con cualquier privilegio que tengan) db (contiene los privilegios de nivel de
base de datos) tables_priv (contiene los privilegios de nivel de tabla), columns_priv (contiene los
privilegios de nivel de columna) y host (se usa en una combinacion con db para controlar los
privilegios de acceso de hosts particulares al mejor nivel que sea posible solo en la tabla db).
privilegios en bases de datos y tablas
ALTER: permite alterar tablas e indices
CREATE: permite crear bases de datos y tablas (no indices)
DELETE: permite borrar registros de tablas
DROP: permite eliminr bases de datos y tablas (no indices)
INDEX: permite crear o eliminar indices
INSERT: permite insertar nuevos registros en las tablas
SELECT: permite recuperar informacion de las tablas
UPDATE: permite actualizar registros en las tablas
privilegios administrativos
FILE: permite leer y escribir archivos en el servidor
PROCESS: permite revisar informacion sobre los hilos ejecutados o eliminados en el servidor
RELOAD: permite recargar las tablas cedidas o vaciar los registros, la cache host o la cache de
tablas
SHUTDOWN: permite cerrar el servidor
ALL (ALL PRIVILEGES): asigna todos los permisos
USAGE: privilegio espacecial "sin privilegios"

directorio de datos y archivos log


protección del directorio de datos:
en el directorio de base de datos de MYSQL . contiene todas las bases de datos y tablas manejadas
por el servidor. Es característica de MYSQL el hecho de que cada base de datos se corresponde con
un directorio bajo el directorio de datos y las tablas dentro de una base de datos se corresponden con
los archivos en el respectivo directorio relativo a la base de datos.
MANTENIMIENTO DE ARCHIVOS LOG
cuando se comienza el trabajo en el servidor de MYSQL. Hemos de asegurarnos de que se activan
los archivos log de rastreo que permitirán hacer seguimiento posterior de toda la actividad en el
servidor y a la vez de todos los usuarios que han realizado cada actividad

Sintaxis para habilitar el log general al iniciar el servidor:


mysqld -- log[ =nombre_ruta]

Sintaxis para habilitar el log de actualización:


mysqld --log-update[ =nombre_ruta]

Sintaxis para habilitar el logging del archivo del archivo índice:


mysqld --log [ =nombre_ruta ]
Es muy conveniente habilitar los archivos log siempre que se inicie el servidor

COPIAS DE SEGURIDAD
en todo momento debemos disponer de una copia de seguridad de las bases de datos de MYSQL.
pueden existir colapsos del sistema u operaciones administrativas poco prudentes como DROP
DATABASE o DROP TABLE que accidentalmente borren o dañen las bases de datos

Tablas de concesión
pertenecen ala base de datos de nombre mysql que se genera por defecto en la instaacion por lo
tanto la primera tarea sera poner en uso la base de datos y mostrar todas sus columnas

Practica
Comandos
Backup
mysqldump --opt mibase > copia_seguridad.sql
mysqldump --opt --password=clave --user=usuario BaseDatos tabla1 tabla2 > bkpdostablas.sql
Restaurar
mysql mibase < archivo.sql
Usuarios
CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'tu_contrasena'; st
CREATE USER ‘oper’@’localhost’ IDENTIFIED BY “”;
GRANT UPDATE,DELETE,INSERT ON bd.prueba TO oper@’localhost’;
CREATE USER ‘auditor@’localhost’ IDENTIFIED BY “”;
GRANT SELECT,SUPER ON bd.prueba TO auditor@’localhost’;

GRANT ALL PRIVILEGES ON * . * TO 'nombre_usuario'@'localhost';


FLUSH PRIVILEGES;
SHOW GRANTS FOR super@localhost;
Privilegios Posibles:
ALL PRIVILEGES, CREATE, DROP, DELETE, INSERT, SELECT, UPDATE, GRANT OPTION

REVOKE [permiso] ON [nombre de base de datos].[nombre de tabla] FROM ‘[nombre de


usuario]’@‘localhost’;
DROP USER ‘usuario_prueba’@‘localhost’;
Cerrar Sesion
mysql -u [nombre de usuario]-p

LABORATORIO
1. Crear Usuarios
create user u001;
select user for user;

2. Mostrar, asignar y modificar privilegios

SHOW GRANTS FOR u001;


SHOW GRANTS FOR CURRENT_USER;
GRANT INSERT, UPDATE, DELETE ON BDAcad.* TO 'u001';
REVOKE [permiso] ON [nombre de base de datos].[nombre de tabla] FROM ‘[nombre de
usuario]’@‘localhost’;

3.
4.
5. Asfd
6.

Potrebbero piacerti anche