Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
Acceso a la informaci—n. informaci—n. Caso pr‡ctico Ahora que Naroba, Noiba y Jana han instalado correctamente un SGBD con la ayuda de Vindio y Laro, Juan les pide que realicen las tareas propias del adm admini inistr strado adorr del mis mismo, mo, es dec decir ir,, re reali alizar zar altas y bajas de usuarios, modiÞcar los privilegios de los mismos y cuidar que la base de datos cumpla la normativa aplicable sobre la protecci—n de datos.
Materiales formativos de FP Online propiedad del Ministerio de Educaci—n, Cultura y Deporte. Aviso Legal
1 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
1. Creaci—n, modiÞcaci—n y eliminaci—n de vistas. Caso pr‡ctico Cuando Vindio les cuenta a las estudiantes lo que han de hacer y les pregunta por el modo en el que van a encarar el trabajo, Jana le contesta que considera que el primer paso debe ser crear vistas de la Base de Datos, para evitar que los usuarios accedan directamente a los datos de las tablas.
El acceso directo a los datos de las tablas de una BD puede ser peligroso por motivos de seguridad. ÀC—mo podemos proteger la BD en la que se trabaja? El uso de vistas permite proteger la BD facilitando el acceso a los datos, ya que evita el acceso a las tablas directamente. Otra ventaja es que podemos dar permisos sobre las vistas. Una vista es un objeto de una base de datos y, si no se especiÞca lo contrario, se crea en la base de datos en la que estŽ trabajando el usuario que la crea. La sentencia b‡sica para crear una vista, que puede ejecutarse desde consola o desde un programa de entorno gr‡Þco, es la siguiente: CREATE VIEW nombre_vista AS sentencia_SELECT
Si por el contrario, deseamos realizar una modiÞcaci—n sobre una vista ya existente, la sentencia m‡s sencilla es: ALTER VIEW nombre_vista AS sentencia_SELECT
Para eliminar una vista solo tenemos que ejecutar: DROP VIEW [IF EXISTS] nombre_vista
Hay que tener en cuenta que todo aquello que est‡ dentro de los corchetes es opcional de escribir. En algunas vistas se pueden modiÞcar los datos que la forman utilizando las sentencias: INSERT, UPDATE o DELETE. Pero esto no es siempre posible, por ejemplo en los siguientes casos:
2 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
En caso de utilizar funciones de columna o columnas que son resultado de operaciones (columnas derivadas) se pueden modiÞcar exclusivamente las columnas no derivadas. En el caso de que la sentencia SELECT que genera la vista sea una subconsulta. Al usar tablas temporales, en la deÞnici—n de la vista se emplea ALGORITHM = TEMPTABLE. Para poder realizar la operaci—n de insertar es necesario que la vista incluya todas las columnas de la tabla que no tengan deÞnido un valor por defecto. En vistas multitabla, en general, solo se pueden modiÞcar las columnas de una de las tablas salvo que la deÞnici—n de la vista se haya hecho utilizando INNER JOIN, en cuyo caso si est‡ permitida la modiÞcaci—n de columnas de m‡s de una tabla. En vistas multitabla se puede utilizar la sentencia INSERT, solo cuando se opera en una de las tablas. En vistas multitabla la sentencia DELETE no se puede utilizar en ningœn caso.
Debes conocer En los siguientes enlaces puedes encontrar la informaci—n oÞcial del MySQL sobre las vistas de usuario. Vistas en MySQL 5.5.
3 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
2. Administrador de usuarios. Caso pr‡ctico Tras la creaci—n de vistas, Vindio se cuestiona cual es el siguiente paso a realizar. En esta ocasi—n es Noiba quien contesta. Opina que deber’an crear y dar permisos a los diversos usuarios del sistema. Vindio, sonr’e y asiente, despuŽs le pregunta por el modo en el que lo har’an. Noiba le contesta que utilizando los comandos CREATE , DROP, UPDATE, SET PASSWORD, GRANT y REVOKE.
A estas alturas, a ninguno de nosotros se nos ocurre pensar que todos los usuarios de una BD puedan acceder a todos los datos de la misma y realizar todas las operaciones que deseen. Tampoco es posible que todos los usuarios que tengan permiso para trabajar con una base de datos puedan acceder al resto de BD que se alojan en el SGBD con el que trabajan. ÀC—mo se pueden establecer diferentes tipos de acceso al SGBD? Utilizando la administraci—n de usuarios. De este modo podemos establecer quŽ usuarios se pueden conectar al sistema y asegurar que solo podr‡n realizar operaciones para las que tienen permisos sobre las bases de datos a las que tengan acceso. El acceso se realiza en dos pasos: En primer lugar, se comprueba la identidad del usuario, a travŽs de una pareja de datos login/contrase–a. El login viene dado por el host desde el que nos conectamos m‡s el usuario que tenemos asignado. DespuŽs se comprueban los permisos con los que cuenta el usuario y sobre que objetos puede operar. Establecer una pol’tica de accesos adecuada es uno de las tareas m‡s importantes a las que se debe enfrentar un DBA, porque de ello depende en gran medida la seguridad del SGBD.
4 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
Autoevaluaci—n Una cuenta de usuario (login) est‡ formada por: El nombre de usuario. El nombre de usuario y m‡quina desde la que se conecta. Los permisos de acceso a bases de datos las tablas. Nombre de usuario y contrase–a. No es la respuesta correcta. El nombre del usuario es parte del login de un usuario, aunque no es todo. Correcta. Muy bien, continua as’. Incorrecta. Los permisos est‡n asociados a la cuenta de usuario, pero no forman parte del login. No es correcta. La contrase–a es imprescindible, junto con el login, para comprobar la identidad del usuario.
Soluci—n 1. Incorrecto 2. Opci—n correcta 3. Incorrecto 4. Incorrecto
5 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
2.1. Creaci—n y eliminaci—n de usuarios. Dado que no todos los usuarios van a poder hacer todas las operaciones sobre un SGBD, Àcu‡les son las caracter’sticas de aquellos usuarios encargados de las altas y bajas de usuarios en cada una de las BD del sistema? Es imprescindible que los usuarios encargados de estas tareas cumplan dos requisitos: Tener activo el permiso global RELOAD . Tener activo el permiso INSERT sobre la BD en la que se almacenan los usuarios de SGBD, en nuestro caso dicha BD es: mysql. Las operaciones que podemos realizar sobre una cuenta de usuario son las siguientes: Crear usuarios, en MySQL podemos crear cuentas de usuario de varios modos: Utilizando el comando CREATE USER. La forma de uso de est‡ sentencia es: CREATE USER nombre_usuario [IDENTIFIED BY [PASSWORD] 'contrase–a']
La contrase–a debe ir entre comillas. Lo habitual es no incluir la palabra PASSWORD y de este modo, ser‡ el sistema el que encripte la contrase–a introducida. Si no ponemos lo que va entre corchetes el usuario se crear‡ sin contrase–a. Usando el comando GRANT, este es el comando empleado para proporcionar los permisos a las cuentas de usuario. Si queremos asignar permisos a una cuenta de usuario que no existe, el sistema crea una. Este comando lo veremos en mayor detalle en el pr—ximo apartado. Manipulando directamente la tabla mysql.user mediante un INSERT. Para que la contrase–a estŽ encriptada es necesario llamar a la funci—n PASSWORD() dentro del INSERT para la columna contrase–a. Es necesario ejecutar FLUSH PRIVILEGES para recargar los permisos creados con INSERT, o modiÞcados con UPDATE. Mediante alguna utilidad gr‡Þca como: MySQL Workbench, Administrator o incluso phpMyAdmin. Para eliminar una cuenta de usuario utilizamos el comando DROP USER. La forma de uso de esta sentencia es: DROP USER nombre_usuario [, nombre_otro_usuario]
Otra operaci—n que podemos realizar sobre una cuenta de usuario es renombrarla. Para ello utilizamos la sentencia RENAME . La forma de uso de est‡ sentencia es: RENAME USER nombre_viejo TO nombre_nuevo
Existe tambiŽn una sentencia para asignar una contrase–a al usuario, o cambiar la actual se ejecuta SET PASSWORD y su forma de uso es: SET PASSWORD [FOR nombre_usuario] = PASSWORD('contrase–a')
Si omitimos el usuario, el cambio se realiza sobre el usuario actual que ejecuta el comando. Para poder utilizar estas sentencias es necesario que el usuario cumpla uno de los siguientes requisitos:
6 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
O bien tiene activo en permiso global CREATE USER, lo que le permite hacer cualquiera de las operaciones anteriores. O bien tiene los permisos correspondientes sobre la base de datos mysql, que son:. INSERT para utilizar el comando CREATE USER . DELETE para poder usar el comando DROP. UPDATE para ejecutar los comandos RENAME y SET PASSWORD.
Debes conocer Puedes ver el modo de crear usuarios mediante una utilidad gr‡Þca, concretamente MySQL Workbench, en la siguiente presentaci—n: Creaci—n de usuarios con MySQL Workbench.
!"#$%&' )" *+"'$,# )" +#+,-%. / 0"-1%#.# "' 2/345
7 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
2.2. Permisos a usuarios: puntos de acceso al sistema. ÀQuiŽn va a ser el usuario encargado de garantizar la seguridad en los SGBD? Esta responsabilidad recae directamente en el DBA. Es Žl quien: Crea los usuarios para proporcionar entrada al sistema. Desarrolla las pol’ticas de contrase–as. Asigna los permisos para que el usuario pueda acceder a los distintos objetos del sistema, para hacer quŽ tareas concretas y desde d—nde puede acceder. Esas son las tareas que realiza el DBA para controlar las que puede realizar un usuario y es lo que se conoce como controlar los puntos de acceso al sistema. Para asignar permisos a un usuario se utiliza el comando: GRANT; y para quit‡rselos se emplea REVOKE . Se pueden utilizar distintos comodines, como Ò %Ó o Ò*Ó, en el uso de GRANT y REVOKE. Para saber m‡s sobre ambos comandos debes visitar el enlace que encontrar‡s a continuaci—n. Los permisos se pueden proporcionar sobre bases de datos enteras, restringirlos a determinadas tablas de bases de datos concretas e incluso sobre columnas de una tabla. Podemos saber cuales son los permisos que tiene asignado un usuario bien a travŽs del entorno gr‡Þco, o bien mediante la ejecuci—n del comando SHOW GRANTS FOR 'nombre_usuario'@'host' en la consola; donde host puede ser el nombre de una m‡quina o una direcci—n IP o de dominio.
Recuerda que una cuenta de usuario viene deÞnida por nombre_usuario y las m‡quinas desde las que se puede conectar.
Debes conocer En el siguiente enlace encontrar‡s documentaci—n sobre la estructura y opciones aplicables a los comandos GRANT y REVOKE. Informaci—n sobre
8 de 18
GRANT y REVOKE .
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
Autoevaluaci—n Si modiÞcamos los permisos con GRANT , REVOKE o SET servidor recarga las tablas de permisos autom‡ticamente.
PASSWORD
el
Falso. Verdadero. No es correcto, para modiÞcar los permisos el servidor debe recargar las tablas de permisos con los nuevos valores. Correcto, has captado la idea.
Soluci—n 1. Incorrecto 2. Opci—n correcta
9 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
3. Acceso simult‡neo: concurrencia y bloqueos. Caso pr‡ctico Las estudiantes dicen que ya han terminado la tarea. Vindio les pregunta si han tenido en cuenta que puede haber accesos simult‡neos a los mismos registros de la BD. Noiba dice que esa situaci—n siempre se da en una BD y que no hay posibilidad de controlarlo. Vindio vuelve a sonreir. En este caso, les dice, lo habitual es que el SGBD estŽ conÞgurado de modo que controle los accesos simult‡neos al sistema y que realice los bloqueos necesarios, pero que, si es necesario, tambiŽn puede conÞgurarse o hacerse a mano.
Cuando varios usuarios operan simult‡neamente sobre los mismos registros de una BD Àc—mo se logra que los datos no se corrompan y que quede preservada la integridad y la coherencia de la BD? La forma de actuar en estos casos es habilitando bloqueos. El tipo de estos depende de la operaci—n que se realice sobre los datos. Una de las ventajas de emplear un SGBD frente a un sistema de almacenamiento basado en Þcheros es que se puede controlar el acceso concurrente a los datos almacenados en el sistema. Hay dos mŽtodos para implementar los bloqueos: Binario: las transacciones solicitan previamente el bloqueo de los registros escogidos para evitar que cualquier otra transacci—n acceda simult‡neamente a ellos. Compartido o exclusivo: es menos restrictivo, ya que permite algunas situaciones de acceso concurrente. Permite que las transacciones que solicitan el bloque de registros accedan a Žl al tiempo si la solicitud de todas ellas es para lectura y actœa el modo compartido. Por otro lado, cuando alguna de las transacciones solicita realizar una modiÞcaci—n de los datos, el SGBD utiliza un bloqueo exclusivo sobre los registros afectados para que ninguna otra transacci—n acceda a ellos en ese instante. Un problema derivado de los bloqueos es lo que se conoce como abrazo mortal o
10 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
deadlock. Se produce cuando una transacci—n bloquea registros, a los que desea acceder una segunda transacci—n, que a su vez tiene bloqueados otros registros a los que desea acceder la primera transacci—n. En esta situaci—n ambas transacciones est‡n a la espera de que la otra libere los registros que necesita para Þnalizar su tarea sobre los registros bloqueados. Para evitar este conßicto, los SGBD implementan un mecanismo de control que comprueba peri—dicamente la existencia de deadlocks, reiniciando la transacci—n que lleva menos operaciones realizadas, segœn el nœmero de modiÞcaciones.
Debes conocer Para saber m‡s sobre el bloqueo de tablas en MySQL puedes acceder al manual desde los siguientes enlaces: MŽtodos de bloqueo de tablas en MySQL. Sentencias de bloqueo de tablas en MySQL.
11 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
4. DeÞnici—n de roles: asignar y retirar roles a usuarios. Caso pr‡ctico Jana, que lleva un rato pensativa, le pregunta a Vindio si no hubiera sido m‡s sencillo, a la hora de dar permisos a los usuarios, crear grupos, como se hace en el sistema operativo Linux. Vindio aplaude esta idea. Les dice que, aunque los grupos no existen, lo que pueden es crear roles, es decir deÞnir conjuntos de permisos y asign‡rselos a los usuarios. De este modo se facilita esta tarea. El problema es que no todos los SGBD soportan su uso, y MySQL es uno de estos SGBD.
Un rol viene deÞnido por el conjunto de permisos que se agrupan para realizar una serie de funciones. La deÞnici—n de roles simpliÞca la administraci—n de usuarios al permitir asignar de forma r‡pida y sencilla todos los permisos que precisa el usuario al asociarle el rol o roles que necesita y no tener que asignar los permisos uno a uno para cada usuario. En bases de datos con multitud de objetos distintos es donde realmente se nota la ventaja y potencia de trabajar utilizando roles. Se pueden comparar los roles con los grupos de usuarios en GNU/Linux. En dicho sistema operativo se crean distintos grupos, cada uno de ellos con una serie de permisos que le posibilitan y deÞnen un modo de operar sobre el sistema. Cualquier usuario que pertenezca al grupo hereda esos permisos. Una vez deÞnidos los grupos, basta con asignar el usuario a los distintos grupos. DeÞnir roles sirve para agrupar tareas en tipos de usuarios concretos y que no sea un usuario, a excepci—n de la cuenta del administrador, el que acumule muchos permisos. De esta manera se consigue aumentar el nivel de seguridad de la base de datos. En MySQL no vienen predeterminados los roles pero en otros SGBD, como por ejemplo Oracle, si est‡n soportados. La sentencia en Oracle para crear roles es: CREATE ROLE nombre_rol [NOT IDENTIFIED | IDENTIFIED BY contrase–a]
12 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
Una vez creado el rol, utilizamos GRANT para asignar los permisos al rol: GRANT permisos TO nombre_rol
y tambiŽn se asigna el rol al usuario: GRANT nombre_rol TO nombre_usuario
Para eliminar un rol ser’a utilizando el comando
DROP y
se modiÞcar’a con
ALTER.
Autoevaluaci—n Todos los SGBD existentes hoy en d’a soportan el uso de roles de usuario. Verdadero. Falso. No es correcto, aunque hay sistemas como Oracle que permiten la utilizaci—n de roles, existen otros, como MySQL, que no los soportan. Correcto, has captado la idea.
Soluci—n 1. Incorrecto 2. Opci—n correcta
13 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
5. Normativa legal vigente sobre la protecci—n de datos. Caso pr‡ctico Cuando han terminado con los usuarios y permisos Vindio les entrega la normativa vigente sobre protecci—n de datos para que la conozcan, se familiaricen con ella y, despuŽs, comprueben que se cumple en el SGBD que han instalado.
Entre las responsabilidades del DBA no est‡ solo asegurar el buen funcionamiento del SGBD. Controlar el mantenimiento de los datos almacenados conlleva, adem‡s de realizar las copias de seguridad para garantizar la recuperaci—n del sistema, y para que en caso de problemas todo quede como si nada hubiera pasado, asegurar el cumplimiento de la LOPD a quienes acceden a esos datos. Esto le obliga a proteger el acceso a los datos de car‡cter personal que puedan estar almacenados en las bases de datos. Un dato de car‡cter personal es cualquier informaci—n que permite identiÞcar a una persona o hacerla f‡cilmente identiÞcable. En Espa–a, la AGPD es el organismo encargado de garantizar el cumplimiento de la legislaci—n sobre protecci—n de datos. La normativa vigente sobre protecci—n de datos viene dada por: Ley Org‡nica 15/1999, de 13 de diciembre, de Protecci—n de Datos de Car‡cter Personal (T’tulo VI con rango de ley ordinaria). Real Decreto 1720/2007 por el que se aprueba el Reglamento de desarrollo de la Ley Org‡nica 15/1999, de 13 de diciembre, de Protecci—n de Datos de Car‡cter Personal. Real Decreto 428/1993, de 26 de marzo, por el que se aprueba el Estatuto de la Agencia Espa–ola de Protecci—n de Datos.
14 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
Para saber m‡s En el siguiente enlace podr‡s obtener la Gu’a de Seguridad de Datos, en formato PDF. Gu’a de Seguridad de Datos.
(0.76 MB)
Gu’as publicadas por la AGPD. A travŽs del siguiente enlace acceder‡s a la p‡gina web oÞcial de la AGPD. Web de la AGPD.
Autoevaluaci—n Cu‡les de las siguientes aÞrmaciones son correctas: La AGPD es el organismo que garantiza el cumplimiento de la legislaci—n sobre la protecci—n de datos en Internet.
La AGPD es el organismo que garantiza el cumplimiento de la legislaci—n sobre la protecci—n de datos en Espa–a.
Un dato de car‡cter personal es aquella informaci—n de la vida privada de un individuo.
Un dato de car‡cter personal es aquella informaci—n que permite identiÞcar a una persona.
Mostrar retroalimentación
Soluci—n 1. Incorrecto 2. Correcto
15 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
3. Incorrecto 4. Correcto
16 de 18
26/8/16 1:36
Acceso a la informaci—n.
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
Anexo.- Licencias de recursos. Licencias de recursos utilizados en la Unidad de Trabajo. Recurso (1)
17 de 18
Datos del recurso (1)
Recurso (2)
Datos del recurso (2)
Autor’a: jonny goldstein. Licencia: CC By. Procedencia: www.ßickr.com/photos /jonnygoldstein /2142231170 /in/photostream/
Autor’a: Alain Bachellier. Licencia: CC By-nc-sa. Procedencia: www.ßickr.com/photos /alainbachellier/3679225582/in/set72157608481522787
Autor’a: Hefhoover (having a bit of camera trouble :-( . Licencia: CC by-nc-sa. Procedencia: www.ßickr.com/photos /hefhoover /4086584639/
Autor’a: Alain Bachellier. Licencia: CC By-nc-sa. Procedencia: www.ßickr.com/photos /alainbachellier/3678356779/in/set72157608481522787
Autor’a: Joe Pemberton. Licencia: CC by-nc-nd. Procedencia: www.ßickr.com/photos /joepemberton /2530023538/
Autor’a: James Rivera Photography. Licencia: CC by nc nd. Procedencia: http://capturegreatness.org /wp-content/uploads/2012/07 /Dollarphotoclub_56233474.jpg
Autor’a: miggslives. Licencia: CC by. Procedencia: www.ßickr.com/photos /miggslives /4354119044/
Autor’a: Vertigogen. Licencia: CC by-nc. Procedencia: www.ßickr.com/photos /vertigogen/234217869/
Autor’a: Alain Bachellier. Licencia: CC By-nc-sa. Procedencia: www.ßickr.com/photos /alainbachellier
Autor’a: mjswart. Licencia: CC by-nc. Procedencia: www.ßickr.com/photos /mjswart/3763969995/
26/8/16 1:36
Acceso a la informaci—n.
Recurso (1)
http://localhost:51235/temp_print_dirs/eXeTempPrintDir_guGa...
Datos del recurso (1)
Recurso (2)
Datos del recurso (2)
/3678357769/in/set72157608481522787
18 de 18
Autor’a: Alain Bachellier. Licencia: CC By-nc-sa. Procedencia: www.ßickr.com/photos /alainbachellier /3678558585/in/set72157608481522787
Autor’a: mricon. Licencia: CC by-sa. Procedencia: www.ßickr.com/photos /mricon/137744681/
Autor’a: Alain Bachellier. Licencia: CC By-nc-sa. Procedencia: www.ßickr.com/photos /alainbachellier /2983574231/in/set72157608481522787/
Autor’a: N'ayez pas peur !! La Fabrique de Blogs. Licencia: CC by-cd-sa. Procedencia: jpg https://www.hostinet.com/formacion /wp-content/uploads/Þle/protecciondatos-personales.jpg
26/8/16 1:36