Vous êtes sur la page 1sur 15

2ASIR-ASGBD Elkhatib Hamza

ADMINISTRACIN DE SISTEMAS GESTORES DE BASE DE DATOS PRCTICA 2

UNIDAD 3: ADMINISTRACIN DE CUENTAS Y PERMISOS EN MYSQL.

Actividad 1. Usando el servidor MySQL Server en Ubuntu 16.04 x64 podemos establecer
privilegios de usuarios mediante la orden GRANT. grant [privilegio] [columna] on [nivel] to
[usuario] identified by contrasea with grant option
1.1. Selecciona las celdas de la tabla sobre la actuacin de los permisos y a que tablas
afectan. La actividad se considera correcta si no presenta ningn error
Ambito de Aplicacion

Tipos de Tabla user Tabla db Tabla Servers Tabla tables_privs Tabla columns_privs Tabla procs_priv
permisos

Global mysql.user mysql.db mysql.servers mysql.tables_privs mysql.columns_privs mysql.columns_privs

BBDD mysql.user mysql.db mysql.servers mysql.tables_privs mysql.columns_privs mysql.columns_privs

Tabla mysql.user mysql.db mysql.servers mysql.tables_privs mysql.columns_privs mysql.columns_privs

Columna mysql.user mysql.db mysql.servers mysql.tables_privs mysql.columns_privs mysql.columns_privs

Rutina mysql.user mysql.db mysql.servers mysql.tables_privs mysql.columns_privs mysql.procs_priv

1.2. Indica en una lnea lo que indican los siguientes privilegios:


alter: permite modificar una tabla (ALTER TABLE).
create: permiten crear BD y tablas.
delete: elimina filas de tablas en una base datos.
drop: permiten eliminar BD y tablas.
index: permite crear o eliminar ndices.
Insert: permite insertar sobre filas de una BD.
select: permite realizar consultas a una base de datos.
update: permite actualizar un registro en una BD.
file: permite leer cualquier fichero del servidor y situarlo en una tabla, que puede entonces
consultarse con select.
process: permite ver el texto (cdigo) correspondiente a una consulta en ejecucin.
reload: restablece la informacin.
shutdouwn: permite detener el servidor.
all: todos los permisos.
usage: no privilegios.
columna: representa un tipo nico de informacin acerca de la entidad (atributo).
nivel: Nivel de abstraccin que permite definir las informaciones a las que pueden acceder los
usuarios o aplicaciones de una base de datos, y en el que las vistas que se definen vienen en
funcin de las entidades y relaciones definidas en el nivel conceptual de la base de datos.
nombre_base.*: el nombre que queremos asignarle a nuestra base de datos.
usuario@host: cuando se crea un usuario, donde usuario es el nombre de usuario, host son
los sitios desde donde se le permite al usuario conectarse, y deben ser ips o hostnames vlidos.
with grant option: con estas las palabras clave transmiten el privilegio o rol a un usuario con el
derecho de otorgar los mismos privilegios o roles a otros usuarios.

1
2ASIR-ASGBD Elkhatib Hamza

Actividad 2. Crea la base de datos tests con las tablas


Crea la base de datos tests con las siguientes tablas y filas desde el cliente Workbench, si
an no la has creado, si existiese eliminala y creala de nuevo. Adjunta las ordenes utilizadas
y las correspondientes capturas para mostrarla.
create table tests.tabla1(a int);
insert into tests.tabla1 VALUES(1);
insert into tests.tabla1 VALUES(2);
create table tests.tabla2(uno1 INT, dos2 INT, tres3 INT, primary KEY(tres3)) ENGINE=InnoDB;
create table tests.tabla3(uno1 INT, dos2 INT, tres3 INT, KEY(uno1), CONSTRAINT) CO
FOREIGN KEY (dos2) REFERENCES tabla1(tres3)) ENGINE=InnoDB;
En este paso la tabla tres no se pudo crear.

2.a. Crea una tabla tabla3 en la base de datos con 2 campos de tipo smallint, uno de ellos clave
primaria y motor MyISAM.
Mediante la sentencia mostrada en pantalla.

2
2ASIR-ASGBD Elkhatib Hamza

2.b. Crea una tabla tabla3 en la base de datos con 2 campos de tipo char, uno de ellos clave
primaria y motor por defecto.
Por cuestin de ambigedad, elimine la tabla creada en el apartado anterior.

3.c. Muestra desde mysql las tablas generadas con sus respectivos motores de almacenamiento.
Lo hice desde terminal por la compilacin de informacin.

3
2ASIR-ASGBD Elkhatib Hamza

Actividad 3. Aplica solo lo que pide el enunciado desde el usuario inicial root
3.a. Crea con CREATE un usuario local con tu nombre para acceder de forma local y accede a la
tabla user para mostrar las columnas user y host de la tabla user para su comprobacin. Adjunta
las ordenes utilizadas y las correspondientes capturas.
Usando create user.

Con select user vemos los usuarios actuales.

4
2ASIR-ASGBD Elkhatib Hamza

Con select host vemos los equipos o ips que pueden conectarse.

3.b. Crea un usuario con tu nombre para acceder desde cualquier equipo y accede a la tabla
user para mostrar las columnas user y host de la tabla user para su comprobacin. Adjunta
las ordenes utilizadas y las correspondientes capturas.
Con create user

5
2ASIR-ASGBD Elkhatib Hamza

Hacemos excatamente igual que el paso anterior

Igual que el paso anterior.

6
2ASIR-ASGBD Elkhatib Hamza

3.c. Comprueba en la tabla db si los usuarios creados en esta actividad tienen permisos sobre la
base de datos tests.
Use show grants para esta comprobacin, por ahora el usuario hamza no tiene permisos sobre la
base de datos tests.

Repetimos el paso anterior.

7
2ASIR-ASGBD Elkhatib Hamza

Actividad 4. Crea una tabla en la base de datos tests creada en la actividad 2

4.a. Crea la tabla nuevatabla sobre esta base de datos tests con un nico campo numrico
campo usando como motor InnoDB. Inserta en nuevatabla los valores 10, 11 y 12 en la tabla
nuevatabla. Muestra los valores de nuevatabla
Adjunta las ordenes utilizadas y las correspondientes capturas.
Creamos la tabla con create table.

Insertamos los valores con insert intro.

Visualizamos los datos con select.

8
2ASIR-ASGBD Elkhatib Hamza

4.b. Accede con el usuario local creado en la actividad 3 y prueba mostrar los valores de la tabla
nuevatabla. Indica que sucede y qu haras para que este usuario pueda mostrar los valores
mediante un SELECT, sin otras posible acciones u operaciones (delete, update o insert), en la
tabla de la base de datos tests creada.

Con grant le damos permisos de consulta sobre la base de datos.

Actividad 5.
Creacin de un usuario con privilegios de administrador.
5.1. Crea un usuario de nombre administrador y asgnale todos los permisos necesarios para que
pueda realizar cualquier tipo de transaccin, desde el equipo local y desde cualquier otro equipo.
Adjunta las ordenes utilizadas y las capturas de pantalla con las sentencias definidas.
Podemos utilizar create, pero tambin funciona con grant.

9
2ASIR-ASGBD Elkhatib Hamza

5.2. Escribe las ordenes necesarias para realizar la misma operacin que en el apartado de
antes, pero modificando la tabla user de mysql, actualizndolo en memoria.

Actividad 6.

6.1. Establece la sentencia que utilizaramos para modificar la contrasea al usuario de la actividad
5, o asgnale una contrasea nueva si no la habias insertado antes mediante la funcin
PASSWORD.
Con set password.

6.2. Establece la orden REVOKE para eliminar todos los permisos que le has asignado en la
actividad 5.
Con flush privileges y revoke.

10
2ASIR-ASGBD Elkhatib Hamza

Actividad 7. Acceso remoto y conexin mediante un usuario especfico.

7.1. Habilita el servidor MySQL en el archivo my.cnf para permitir el acceso remoto desde otro o
el mismo equipo. Ejemplo: Si tu servidor MySQL tiene como IP 127.0.0.1, debes poder conectarte
desde otro o el mismo equipo de la red con IP 127.0.0.1.
Comentando skip-external-locking y bind-address.

7.2. Crea un usuario ZXYremoto con todos los privilegios sobre la base de datos tests de la
ctividad 4 para la conexin remota al servidor MySQL desde el equipo con IP 127.0.0.1 con
contrasea zxyremoto donde Z, X e Y son las iniciales de tu nombre, primer y segundo apellido
respectivamente.
Lo podemos hacer con create.

11
2ASIR-ASGBD Elkhatib Hamza

.Y otorgarle privilegios con grant.

Actividad 8. (3 puntos) Tunelizacin mediante ssh a MySQL sin el cliente Putty

Algunas herramientas: ssh, nessus, netcat o mkfifo


openssh en Ubuntu permite la creacin de tneles encriptados entre 2 equipos diferentes de la red
y enviar los datos a travs del tnel. Ejemplo: Si tu servidor MySQL tiene como IP
192.168.209.20, debes poder conectarte desde otro equipo de la red con IP 192.168.209.100
8.1. Configura el archivo my.cnf para permitir conexiones remotas por el puerto 3333 a la IP de tu
equipo local.

12
2ASIR-ASGBD Elkhatib Hamza

8.2. Desde el servidor MySQL como administrador crear una cuenta ZXYremotoIP con todos los
privilegios sobre las bases de datos de MySQL para la conexin remota al servidor MySQL
desde el equipo con IP 192.168.1.100 con contrasea zxyremotoIP donde Z, X e Y son las
iniciales de tu nombre, primer y segundo apellido respectivamente.
Hize una errata en la contrasea, pero no afecta al funcionamiento del usario

13
2ASIR-ASGBD Elkhatib Hamza

8.3. Establece el tnel desde el cliente con el usuario creado en el apartado anterior.
Ajustamos las IPs fijas tanto en cliente como en el servidor.

14
2ASIR-ASGBD Elkhatib Hamza

Nos conectamos via SSH al servidor desde el cliente con la sintaxis mostrada en pantalla.

Nos conectamos a mysql con helremotoIP y hacemos un show databases, con eso concluye la
prctica.

15