DABD_U2_A3_FEGG

October 30, 2017 | Author: FELIPEJGUTIERREZG | Category: Table (Database), Databases, Server (Computing), Password, Software
Share Embed Donate


Short Description

Download DABD_U2_A3_FEGG...

Description

Ingeniería en Desarrollo de Software Felipe de Jesús Gutiérrez García (Al12535104) 6to Cuatrimestre José Alfredo Almaraz Romero Facilitador Administración de Base de datos Unidad 2 Operaciones básicas Actividad 3 Data Control Language (DCL)

Durante el desarrollo de esta actividad, se hará uso de las cuentas de usuario de MySQL definiendo qué usuarios se pueden conectar al servidor, y qué tareas pueden hacer cuando estén conectados. El propósito de esta actividad es usar la sentencia GRANT y REVOQUE para la asignación y eliminación de privilegios de acceso a usuarios. Ahora, especificarás como usarías los comandos de control de lenguaje GRANT, REVOKE en la base de datos creada en la Actividad 1 y utilizada en la Actividad 2, para lo cual realiza lo siguiente: • El administrador establecerá los usuarios que se pueden conectar a MySQL y con qué privilegios. • Disponemos de dos comandos para ello:  

GRANT: crea un cuenta MySQL y especifica privilegios. REVOKE: borra privilegios de una cuenta existente.

• También existe la posibilidad de:  

Modificar directamente las tablas de permisos. Usar los scripts mysqlaccess y mysql_setpermission.

GRANT y REVOKE afectan cuatro tablas: – user: usuarios que pueden conectarse al servidor y sus privilegios globales.    

db: privilegios a nivel de bbdd. tables_priv: privilegios a nivel de tabla. columns_priv: privilegios a nivel de columna. Existe una quinta tabla (host) pero no está afectada por los comandos GRANT o REVOKE.

1.- Especifica con una línea de comandos como escribirías el comando GRANT en la base de datos que tenemos agregando permisos para una situación ficticia. GRANT ALL PRIVILEGES ON *.* TO user1@'localhost' IDENTIFIED BY ‘user1' WITH GRANT OPTION; GRANT: Comando que permite 'conceder' privilegios a un usuario. Crear un nuevo usuario y establecer privilegios: 

GRANT privileges (columns) o ON what o TO account IDENTIFIED BY 'password' o WITH grant o REQUIRE encryption requirements;

     

privileges: privilegios que se le asignaran a la cuenta (SELECT, SHUTDOWN, ALL PRIVILEGES...) columns: (opcional) SELECT, INSERT y UPDATE. what: nivel al que serán aplicados los privilegios. A nivel de bbdd, tabla o columna (ON db_name.*, ON *.*) account: usuario y host ('user_name'@'host_name'). Se user_name@'144.155.166.%'

pueden

usar

wildcards:

  

password: (opcional) contraseña de la cuenta. WITH: (opcional) permite dar permisos a otros usuarios. REQUIRE: (opcional, MySQL 4.0.0) establece que la conexión debe estar securizada por SSL.

La forma más sencilla de configurar una cuenta es hacerse las siguientes preguntas: 

¿Quién se puede conectar y desde dónde? o

o o



Limitar a un sólo host:  GRANT ALL ON hospitaldb.* TO 'felipe'@'localhost' IDENTIFIED BY 'administrador';  GRANT ALL ON hospitaldb.* TO 'josé alfredo'@'ares.mars.net' IDENTIFIED BY 'facilitador'; Permitir conexiones desde todas partes:  GRANT ALL ON hospitaldb.* TO 'enrique'@'%' IDENTIFIED BY 'diamante'; Permitir conexiones desde ciertas redes:  GRANT ALL ON hospitaldb.* TO 'maría'@'%.snake.net' IDENTIFIED BY 'turquesa';  GRANT ALL ON hospitaldb.* TO 'josé'@'192.168.128.3' IDENTIFIED 'agua';  GRANT ALL ON hospitaldb.* TO 'adriana'@'192.168.128.%' IDENTIFIED BY 'nieve';

¿Qué tipo de acceso debería tener la cuenta? o o o o o o o o o o o o o

CREATE TEMPORARY TABLES: Crear tablas temporales. EXECUTE: Ejecutar procedimientos almacenados (MySQL 5.0.0) FILE: Leer y escribir archivos en el servidor. GRANT OPTION: Dar los privilegios a otras cuentas. LOCK TABLES: Bloquear tablas. PROCESS: Ver información sobre la ejecución de threads en el servidor. RELOAD: Recargar la tabla de privilegios o flush de logs y cachés. REPLICATION CLIENT: Preguntar sobre localización de servidor master y slave. REPLICATION SLAVE: Actuar como una réplica de servidor slave. SHOW DATABASES: Mostrar bbdd. SHUTDOWN: Parar el servidor. SUPER: Matar threads y otras operaciones de supervisor. ALTER: Modificar tablas e índices.



¿Se requiere que la conexión sea segura?



Hay diversos tipos de privilegios: o o o o o o o o o o

CREATE: Crear bbdd y tablas. DELETE: Borrar registros de una tabla. DROP: Eliminar bbdd y tablas. INDEX: Crear o eliminar índices. INSERT: Insertar nuevos registros en tablas. REFERENCES: (reservado para futuras versiones). SELECT: Consultar registros en tablas. UPDATE: Modificar registros de tablas. ALL: Todas las operaciones (excepto GRANT); sinónimo de ALL PRIVILEGES. USAGE: Privilegio especial "no privilegios".



¿Debería poder administrar privilegios?

Se pueden establecer privilegios a diferentes niveles.  Se usa la cláusula ON: o ON *.* privilegios globales, todas las bbdd, todas las tablas. o ON * privilegios globales si no se ha seleccionado bbdd sino privilegios en la bbdd actual. o ON db_name.* privilegios a nivel de bbdd; todas las tablas de la bbdd. o ON db_name.tbl_name privilegios a nivel de tabla; todas las columnas en la tabla. o ON tbl_name privilegios a nivel de tabla; todas las columnas en la tabla por defecto 

¿Se requiere que la conexión sea segura? o o o

o



A partir de MySQL 4, se pueden securizar las conexiones usando SSL. Tiene un coste en tiempo de proceso. Se puede obligar el acceso seguro:  GRANT ALL ON hospitaldb.* TO 'eladio'@'%.snake.net' IDENTIFIED BY 'flint' REQUIRE SSL; Incluso requerir un certificado X509:  GRANT ALL ON hospitaldb.* TO 'eladio'@'%.snake.net' IDENTIFIED BY 'flint' REQUIRE X509;

¿Deberían limitarse el consumo de recursos? o o o

o

A partir de MySQL 4.0.2, se pueden poner límites: Número de veces por hora que se pueden hacer conexiones. Consultas o actualizaciones por hora.  GRANT ALL ON hospitaldb.* TO 'juan'@'localhost' IDENTIFIED BY 'pirata'  WITH  MAX_CONNECTIONS_PER_HOUR 10  MAX_QUERIES_PER_HOUR 200  MAX_UPDATES_PER_HOUR 50; FLUSH USER_RESOURCES o FLUSH PRIVILEGES resetean los valores contados a 0.

2.- Especifica como utilizarías el comando REVOKE en esta misma base de datos. REVOKE: Permite revocar privilegios y eliminar usuarios

• • • •

  

REVOKE privileges (columns) ON what FROM account; what: debe coincidir con el usuario y el host Se pueden dar permisos y luego revocar algunos: o GRANT ALL ON hospitaldb.* TO 'felipe'@'localhost' IDENTIFIED BY 'administrador'; o REVOKE DELETE, UPDATE ON hospitaldb.* FROM 'felipe'@'localhost';



REVOKE no elimina totalmente una cuenta, para eliminarla:

% mysql -u root mysql> USE mysql; mysql> DELETE FROM user -> WHERE User = 'maría' and Host = '%.snake.net';

• mysql> FLUSH PRIVILEGES; 3.-Escribe las respuestas en un procesador de textos explicando cada palabra que uses en estos comandos y cuál es el objetivo de las mismas.

FUENTES DE CONSULTA: http://www.laigu.net/wp-content/uploads/2009/08/Administraci%C3%B3n-MySQL.pdf http://www.personal.fi.upm.es/~lmengual/GESTION_BD/GBD_GESTION_USUARIOS.pdf

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF