Está en la página 1de 33

UNIVERSIDAD TÉCNICA DE MANABÍ

DEPARTAMENTO DE INFORMÁTICA

Administración de Base
de Datos

Tercer Semestre
Ing. Lorena Bowen Mendoza
ADMINISTRACIÓN DE BASES DE DATOS

CONTENIDO A TRATAR HOY:


Gestión en la encriptación.
Réplicas del servidor de bases de datos.

Objetivo de la Clase:
 Establecer la necesidad de realizar encriptaciones en
los datos.
Realizar copias sincronizadas de la base de datos
principal.

Cognitive Cities Management Research Group (CMMA) 2


ADMINISTRACIÓN DE BASES DE DATOS

ALMACENAMIENTO Y
RECUPERACIÓN DE INFORMACIÓN
UNIDAD IV
ALMACENAMIENTO Y RECUPERACIÓN DE INFORMACIÓN

ADMINISTRACIÓN DE CLAVES
ALMACENAMIENTO Y RECUPERACIÓN DE INFORMACIÓN
ENCRIPTACIÓN
Encriptación es la acción que involucra la codificación de datos para
ocultar su significado. Un algoritmo de encriptación modifica los datos
originales (conocidos como texto plano). Para descifrar los datos, el
usuario proporciona la llave de encriptación para restaurar los datos
encriptados (conocidos como texto cifrado) a su formato original
(texto plano).
ALMACENAMIENTO Y RECUPERACIÓN DE INFORMACIÓN
ADMINISTRACIÓN DE CLAVES
La base de datos
mysql y las
tablas utilizadas PASSWORD(str):
para registrarlos
son USER y Se puede utilizar mysql> SELECT
la instrucción PASSWORD
GRANT ('badpwd');
UPDATE para
cambiar la clave '7f84554057dd964b
de acceso '
ADMINISTRACIÓN DE CLAVES
• PASSWORD() no es reversible. PASSWORD() no realiza una encriptación de la
contraseña del mismo modo que se encriptan las contraseñas. La función
PASSWORD() se usa para autentificar el sistema en el servidor MySQL, no se
debe usar en aplicaciones.
• Para realizar el cambio se debe ingresar a la base de datos de MySQL y proceder
a definir la clave:

mysql> USE mysql;


mysql> UPDATE user SET Password = PASSWORD('contraseña')
WHERE User = 'root';

Sí se desea quitar la clave, simplemente ‘contraseña’ debe estar vacía.


ADMINISTRACIÓN DE CLAVES
• Otra posibilidad sería:
mysql> SET password for root@localhost=PASSWORD('contraseña');

• Sí desea cambiar la clave externamente podría utilizar el comando:


% MYSQLADMIN -u root password PASSWORD_ELEGIDO

• Una vez cambiada la clave es necesario indicar al servidor que vuelva a


cargar las tablas de privilegios:
mysql> FLUSH PRIVILEGES;

• se puede ver las diferentes posibilidades de privilegios que pueden ser


asignados a los diferentes usuarios utilizando la orden:
SHOW PRIVILEGES;
• Al aplicar esta orden se mostrará 3 columnas:
• Privilege: Es el nombre del permiso.
• Context: Contexto en el cual es posible aplicar el permiso
• Comment: Breve explicación
ADMINISTRACIÓN DE CLAVES
Sí un usuario olvidó su
clave, lo más
recomendable es que
sea eliminada

Mysql> SET
SELECT host, user,
password=PASSWORD(‘
password FROM user;
nueva_clave’);

Mysql> SET password


FOR
‘miguel’@’localhost o
IP’ =
PASSWORD(‘CLAVE’);
ALMACENAMIENTO Y RECUPERACIÓN DE INFORMACIÓN

USO DE ENCRIPTACIONES
ALMACENAMIENTO Y RECUPERACIÓN DE INFORMACIÓN
USO DE ENCRIPTACIONES

Antes de la versión
Los datos son
5.7, MySQL carecía AES (Advanced
entonces cifrados en
de módulos Encryption Standard)
el disco.
criptográficos

AES_ENCRYPT AES_DECRYPT
(string,key_string) (string,key_string)
USO DE ENCRIPTACIONES

La cadena resultante
Si AES_DECRYPT()
Los argumentos de puede ser calculada
detecta datos inválidos o
entrada pueden ser de como
un relleno incorrecto,
cualquier longitud. 16*(trunc(string_length
devuelve NULL
/16)+1).
USO DE ENCRIPTACIONES
• Ejemplo: creamos una tabla de prueba donde se guardará la
información de los clientes con su número de tarjeta.

CREATE TABLE prueba


( ID INTEGER NOT NULL AUTO_INCREMENT,
NOMBRE VARCHAR(60) default NULL,
TAR_CREDITO VARCHAR(100),
PRIMARY KEY (id) );

INSERT INTO prueba


VALUES (1,'Gabriel Demera',AES_ENCRYPT('111-222-333-444-555','secret'));
INSERT INTO prueba VALUES (2,'Javier Moreno',AES_ENCRYPT('666-777-888-999-000','secret'));
USO DE ENCRIPTACIONES
• Se puede obtener mayor seguridad no transfiriendo la clave sobre la
conexión para cada consulta, esto puede conseguirse almacenándola en
una variable del servidor durante la conexión:
SELECT @password:='my password';
INSERT INTO prueba
VALUES (3,‘Fernando Valle Azua',AES_ENCRYPT('666-777-888-999-000', @password));

• Para ver el contenido una vez encriptado:


SELECT * FROM prueba;
• Sí se necesita ver los datos de forma normal, se tendría que aplicar:
SELECT id, nombre, AES_DECRYPT(TAR_CREDITO,'secret')
FROM prueba;
USO DE ENCRIPTACIONES
• Sí por algún motivo se le olvida la llave, los datos no podrán volverlos a
recuperar, por ejemplo:
SELECT id, nombre, AES_DECRYPT(TAR_CREDITO,'otro')
FROM prueba;

La primeras versiones de MySQL contaban con dos funciones llamadas


"encode" para encriptar una cadena y "decode" para desencriptarla. El
algoritmo que empleaban estas funciones son actualmente vulnerables y
no deben utilizarse (en la versión 8.x de MySQL se han eliminado).
AES_ENCRYPT() y AES_DECRYPT() fueron añadidas en la versión 4.0.2, y
pueden considerarse como las funciones de encritado criptográfico más
seguras disponibles actualmente en MySQL.
ALMACENAMIENTO Y RECUPERACIÓN DE INFORMACIÓN

REPLICACIONES
ALMACENAMIENTO Y RECUPERACIÓN DE INFORMACIÓN
REPLICACIONES
• Los sistemas de gestión de las bases de datos, ofrece la capacidad de
acceder a la información desde cualquier punto geográfico, siempre
que los sistemas de comunicación y de seguridad así lo permitan,
básicamente gestionan mediante el modelo cliente-servidor. Esta
posibilidad obliga a que la gestión y la estructura de la base de datos
tengan gran importancia de manera que los servicios que ofrecen
funciones de manera continua.
REPLICACIONES

RÉPLICA SINCRÓNICA
Ventaja: que la réplica creada Ventaja: elimina el problema

RÉPLICA ASINCRÓNICA
se encuentra siempre y en de la latencia de la conexión de
todo momento actualizada. datos.
Problema: que se presenta es Problema: sin la conexión
que los DBM tradicionales no entre servidores se ve afectada
aceptan el cambio en la BBDD por problemas de velocidad o
original hasta no recibir se corta durante un período
confirmación de la réplica. mayor al permitido, las BBDD
pierden su sincronización y no
se puede recuperar.
REPLICACIONES
RÉPLICA COMPLETA DE BASE DE DATOS

Base de Datos Cualquier operación


Copia electrónica
distribuida o sobre la Base de
idéntica de una Base
redundancia de los Datos debe ser
de Datos
datos. propagada a la copia.
REPLICACIONES
Réplica de una Base de Datos unidireccional

Réplica Snapshot Réplica Transaccional


• Copia íntegra de la Base de Datos de forma • Se inicia con una copia completa de la Base de Datos y se la
actualiza a medida que cambian los datos
periódica
• Se utiliza generalmente en tiempo real o períodos cortos de
• Es útil cuando los datos cambian de forma poco tiempo y los cambios en los datos son aplicados en la
frecuente, cuando ambos servidores no se segunda Base de Datos en el mismo orden que en la
encuentran sincronizados todo el tiempo, la Base de original.
Datos tiene un tamaño pequeño, o cuando los datos • Es preferible cuando se tiene un gran volumen de
cambian en grandes cantidades durante períodos de modificaciones sobre la Base de Datos original, y cuando la
tiempo muy acotados. latencia entre servidores debe ser minimizada.
• El tamaño de los datos replicados es directamente • El tamaño de los datos replicados es directamente
proporcional a la cantidad de operaciones de manipulación
proporcional al tamaño de la Base de Datos con la
realizadas en la Base de Datos en el período de tiempo
que se trabaja. elegido para la réplica.
REPLICACIONES

OBJETIVO

El objetivo principal para la distribución de datos es proveer un


acceso sencillo a la información por parte de los usuarios de
múltiples localidades o nodos de trabajo de una red de
computadoras.
REPLICACIONES
BENEFICIOS DE LA REPLICACIÓN DE LOS DATOS

Disponibilidad Fiabilidad

Soporte para un
Rendimiento número mayor de
usuarios
REPLICACIONES
El servidor maestro escribe actualizaciones en el
fichero de log binario, y mantiene un índice de los
Las ficheros para rastrear las rotaciones de logs.
características de
MySQL 5
soportan Estos logs sirven como registros de actualizaciones
replicación para enviar a los servidores esclavos.

asíncrona
unidireccional: Cuando un esclavo se conecta al maestro, informa
un servidor al maestro de la posición hasta la que el esclavo ha
actúa como leído los logs en la última actualización
satisfactoria.
maestro y uno o
más actúan
como esclavos. El esclavo recibe cualquier actualización que han
tenido lugar desde entonces, y se bloquea y espera
para que el master le envíe nuevas actualizaciones.
REPLICACIONES
La replicación unidireccional tiene beneficios para la robustez,
velocidad, y administración del sistema:
Puede conseguirse un mejor tiempo de
La robustez se incrementa con un respuesta dividiendo la carga de consultas
escenario maestro/esclavo. En caso de de clientes a procesar entre los servidores
problemas con el maestro, puede cambiar maestro y esclavo. Se puede enviar
al esclavo como copia de seguridad consultas SELECT al esclavo para reducir la
carga de proceso de consultas del maestro.
Otro beneficio de usar replicación es que Sin embargo, las sentencias que modifican
puede realizar copias de seguridad usando datos deben enviarse siempre al maestro,
un servidor esclavo sin molestar al de forma que el maestro y el esclavo no se
maestro. El maestro continúa procesando desincronicen. Esta estrategia de balanceo
actualizaciones mientras se realiza la copia de carga es efectiva si dominan consultas
de seguridad. que no actualizan datos, pero este es el
caso más habitual.
REPLICACIONES

La práctica de configuración del software se lo desarrollará en paquete


de desarrollo WAMP, asumiendo que su equipo dispone de una
máquina virtual instalada para simular el uso de otro equipo:
REPLICACIONES
1. Sí usted desconoce la administración de los escudos de Antivirus y del
Firewall de Windows en la máquina real y en la máquina virtual, se le
recomienda desactivarlos para evitar inconvenientes en el desarrollo de la
misma.
2. Asumiendo que se está utilizando la máquina
virtual (MV) de Virtual Box, en la configuración de
red del sistema operativo que esté utilizando en
este caso XP, seleccione el adaptador, escoja la
opción adaptador puente y más abajo seleccione
la tarjeta de red que utilizare, en este caso se
escoge el adaptador de la red LAN. Si está
utilizando conexión WAN debería escoger el
adaptador Wireless. Seguido de esto se da clic en
aceptar, aquí una gráfica ejemplo:
REPLICACIONES
3. Considere la siguiente dirección IP para configurar la
red en la PC-MASTER.

4. Utilice las siguiente dirección IP para configurar el


PC-ESCLAVO (La Máquina Virtual)

De la PC-Master a la PC-Esclavo

5. Verifique si las dos máquinas están conectadas, esto


mediante el protocolo ICMP haciendo ping de una
maquina a otra.

De la PC-Esclavo a la PC-Master
REPLICACIONES
6. MySQL posee un archivo de configuración llamado
My.ini que define el comportamiento del servidor,
usted necesita editarlo y después verificar que no
estén comentadas (es decir noestén precedidas por
el signo numeral #) las siguientes líneas.
Para PC-MASTER:
log-bin=mysql-bin
server-id=1

Para PC-ESCLAVO cambio la línea:


server-id=1 por server-id=2
REPLICACIONES
7. Reinicie el servicio “wampmysqld” en cada una de las PC, para esto
seleccione:
Panel de Control\Herramientas Administrativas\Servicios, busque el
servicio “wampmysqld”, selecciónelo y haga clic en la opción Reiniciar el
servicio.
Considere la siguiente gráfica:
REPLICACIONES
8. Una vez establecida la comunicación y reiniciados los cambios en la configuración de
los servidores, usted debe entrar a la consola de MySql y hacer los siguientes pasos:
a. Crear un usuario de replicación en el PC-MASTER para que el servidor de PCESCLAVO
pueda acceder y replicar:
GRANT REPLICATION SLAVE ON *.* TO ‘esclavo’@’192.168.1.3’ IDENTIFIED BY ‘123’;
b. Ejecute el comando (FLUSH PRIVILEGES;) para actualizar los privilegios de los usuarios
en el servidor de PC-MASTER.
c. Ahora necesitará realizar una copia exacta de la base de datos a replicar, para esto es
necesario bloquearla con el comando:
FLUSH TABLES WITH READ LOCK;
d. El gestor de base de datos genera un archivo de conexión (log bin) con el servidor
principal, es necesario conocer el nombre del mismo para que el servidor a replicar
establezca conexión, para mostrar el nombre y su número de posición se utiliza el
comando (MASTER STATUS;)
Para el ejemplo el archivo se llama mysql-
bin.000014 y su posición en 545, esto cambiará
dependiendo del servidor, concluido esto se
sale de la terminal de MySQL.
REPLICACIONES
9. Ahora se creará una copia de respaldo de la base de datos a replicar,
para esto se utilizará el siguiente comando fuera de la consola de
MYSQL:
C:\wamp\bin\mysql ….\bin>MYSQLDUMP –u root –p Unidad >
replicaUnidad.sql
10.Nuevamente se debe entrar a la terminal de MySQL y aplicar el
desbloqueo con el comando:
UNLOCK TABLES;

Para el ejemplo, es todo lo que hay que realizar en el servidor de PC-MASTER, los
siguientes pasos son para configurar la consola MySQL de la PC-ESCLAVO.
REPLICACIONES
11. Lo siguiente es ingresar a la consola de PC-ESCLAVO y crear una nueva base de datos con el mismo
nombre de la base de datos que tiene el PC-MAESTRO a la cual se le está trabajando la réplica:
CREATE DATABASE Unidad;
12. Salga de la terminal (\q) y proceda a restaurar las tablas que respaldamos en el PC_MASTER con el
siguiente comando:
MYSQL –u root –p Unidad < replicaUnidad.sql
13. Se debe entrar nuevamente a la terminal de MySQL y parar los servicios del esclavo con el siguiente
comando:
STOP SLAVE;
14. Configure la conexión con el PC-MASTER con el siguiente comando:
CHANGE MASTER TO master_host=’192.168.1.2’,
master_user=’esclavo’,
master_password=’123’,
master_log_file=’mysql-bin.000014’,
master_log_pos=545;
15. Una vez configurado el servidor, inicie los servicios del esclavo con el comando:
START SLAVE;
REPLICACIONES
11. Para comprobar que hay replica escribimos el siguiente
comando que nos dirá si está o no funcionando:
SHOW SLAVE STATUS \G;

• Sí “Seconds_Behind_Master” muestra un 0 es porque está


funcionando correctamente de lo contrario mostrara un Null.
• Para ver el funcionamiento de los servidores replicados, es
necesario que agregue o actualice unregistro en la base de
datos del PC_MASTER y pueda observar su cambio en PC-
ESCLAVO.

También podría gustarte