BASE DE DATOS II

TEMA

SEGURIDAD

MODULO

02
Elaborado por:

Dr. Manuel Jesús Sánchez Chero
Profesor del Curso

TEMA

14

Material Didáctico para uso exclusivo en clase

 Algunos usuarios deberían tener permitido actualizar datos en una tabla particular. el acceso debería estar restringido en base a las columnas.  Conocer el proceso de validación de usuarios. Los requerimientos de seguridad de una base de datos de producción típica son muchos y muy variados:  Los datos de cualquier tabla dada deberían ser accesibles a algunos usuarios. Manuel Jesús Sánchez Chero Página 2 de 14 . Dr. La seguridad es especialmente importante en un DBMS basado en SQL.  Algunos usuarios deberían tener denegado el acceso mediante SQL interactivo a una tabla.  Conocer los identificadores de Usuarios. SEGURIDAD SQL Cuando alguien confía sus datos a un sistema de gestión de base de datos. pero se les debería permitir programas de aplicación que actualicen la tabla. el participante aprenderá a:  Conocer que es un esquema de seguridad.  Conceder privilegios a usuarios.  Para algunas tablas. la seguridad de los datos almacenados es una preocupación primordial.Tema 4 SEGURIDAD Objetivos Al finalizar este capítulo. puesto que SQL interactivo hace el acceso a la base de datos muy sencillo. a otros sólo se les debería permitir recuperar datos. pero el acceso a otros debería ser impedido.

 Los Privilegios. son los elementos a los cuales se puede aplicar la protección de seguridad SQL. Para establecer un esquema de seguridad en una base de datos se utiliza la sentencia SQL GRANT. lo hace a cuenta de algún usuario. proporciona estos tipos de protección para datos en una base de datos relacional. pero puede carecer de permiso para utilizar DELETE o UPDATE filas de una tabla. Un usuario diferente puede tener un conjunto diferente de privilegios. y las sentencias SQL se utilizan para especificar restricciones de seguridad. son las acciones que un usuario tiene permitido efectuar para un determinado objeto de la base de datos. Manuel Jesús Sánchez Chero Página 3 de 14 .  Los Objetos de la base de datos. El lenguaje SQL define un panorama general para la seguridad de la base de datos. suprime o actualiza los datos.El esquema de seguridad SQL. El DBMS permitirá o prohibirá la acción dependiendo de qué usuario esté efectuando la petición. inserta. pero tendrán prohibido el uso de otros. Un usuario puede tener permiso para SELECT e INSERT sobre filas en una tabla determinada. Dr. para especificar que usuario tienen que privilegios sobre los objetos de la base de datos. La mayoría de los usuarios tendrán permiso para utilizar ciertos objetos de la base de datos. La seguridad se aplica generalmente a las tablas y bases de datos enteras también pueden ser protegidos. La Figura muestra cómo podrían ser utilizados estos conceptos de seguridad en un esquema de seguridad para la base de datos. CONCEPTO DE SEGURIDAD La implementación de un esquema de seguridad y el reforzamiento de las restricciones de seguridad son responsabilidad del software DBMS. El esquema de seguridad SQL se basa en tres conceptos principales:  Los Usuarios. Cada vez que el DBMS recupera. son los actores de la base de datos.

un nombre breve que lo identifica al usuario dentro del software DBMS. En una base de datos de producción los id-usuarios son asignados por el administrador. Toda sentencia SQL ejecutada por el DBMS se lleva a cabo a cuenta de un id-usuario específico. El id-usuario determina si la sentencia va a ser permitida o prohibida por el DBMS. Manuel Jesús Sánchez Chero Página 4 de 14 . El id-usuario se encuentra en el núcleo de la seguridad SQL. En una base de datos puede haber únicamente un solo id-usuario. El estándar SQL ANSI/ISO permite que los id-usuarios tengan hasta 18 caracteres y requiere que sean nombres SQL válidos. que identifica al usuario que ha creado y que tiene la propiedad de la base de datos. En DB2 por ejemplo los idusuarios no pueden tener más de ochos caracteres.ESQUEMA DE SEGURIDAD PARA UNA BASE DE DATOS IDENTIFICADORES DE USUARIO (ID-USUARIO) Cada usuario de una base de datos en SQL tiene asignado un id-usuario. En SYBASE los id-usuarios Dr. pero muchos productos DBMS comerciales tienen diferentes restricciones.

ASIGNACIONES DE ID-USUARIOS PARA LA BASE DE DATOS El estándar SQL ANSI/ISO utiliza el término id-autorización en vez de id-usuario y usted encontrará ocasionalmente este término utilizado en otra documentación SQL. por eso es mejor limitar los id-usuarios en ocho o menos caracteres. pero no dice nada con respecto al mecanismo de asociar Dr. puesto que el papel de la identificación (id) es determinar la autorización o privilegio en la base de datos.pueden tener hasta 30 caracteres. Técnicamente id-autorización es un término más preciso. VALIDACION DE USUARIO El estándar SQL ANSI/ISO especifica que los id-usuarios proporciona seguridad en la base de datos. Manuel Jesús Sánchez Chero Página 5 de 14 . sin embargo la práctica más común es asignar un id-usuario diferente a cada persona. En la siguiente figura muestra a varios usuarios que necesitan acceso a la base de datos. de Procesado de Pedidos. Existen situaciones como observa en la figura varios usuarios usan el mismo id-usuario como es el caso del Dpto.

Algunos productos DBMS implementan su propia seguridad por ejemplo cuando se utiliza MYSQL hay que especificar un nombre de usuario y la contraseña asociada en la orden que arráncale programa. Generalmente debe suministrarse tanto un id-usuario como una contraseña asociada al comienzo de una sesión. Todas las sentencias SQL utilizadas durante la sesión están asociadas con el id-usuario especificado para la sesión. En SQL Interactivo. El DBMS comprueba la contraseña para verificar que el usuario está. la sesión comienza cuando arranca el programa el programa SQL interactivo y dura hasta que se abandona el programa. en efecto autoriza a utilizar el id-usuario que suministra. Por ejemplo.un id-usuario con una sentencia SQL. Manuel Jesús Sánchez Chero Página 6 de 14 . cuando se escriben sentencias SQL en una utilidad ¿Cómo determina el DBMS qué el id-usuario está asociado con las sentencias? La mayoría de las implementaciones SQL comerciales establecen un id-usuario para cada sesión de base de datos. Conectarse al MYSQL en modo texto [root@pnichiclayo /]# mysql -u root –p Dr.

mysql> Conectarse al MYSQL en modo gráfico PRIVILEGIOS El conjunto de acciones que un usuario puede efectuar sobre un objeto de una base de datos se denomina los privilegios para el objeto. Manuel Jesús Sánchez Chero Página 7 de 14 . or \g. Type ‘\c’ to clear the buffer.’ or ‘\h’ for help.41 Type ‘help. Commands end with . El estándar SQL ANSI/ISO especifica 4 privilegios para tablas Dr.23. Your MySQL connection id is 3 to server version: 3.Enter password:****** Welcome to the MySQL monitor.

permitiendo actualizaciones de estas columnas. un usuario con el privilegio INDEX puede crear un índice para la tabla con la sentencia CREATE INDEX. pero desautorizando actualizaciones a otras columnas. con este privilegio. con este privilegio se puede especificar la tabla en la cláusula FROM de una sentencia DELETE. Un usuario con el privilegio ALTER sobre una tabla particular puede utilizar la sentencia ALTER TABLE para modificar la definición de una tabla.  El privilegio INSERT permite insertar nuevas filas en una tabla. Muchos DBMS comerciales ofrecen privilegios adicionales sobre las tablas por ejemplo MYSQL soporta un privilegio ALTER y INDEX para las tablas. El privilegio UPDATE puede restringirse a columnas especificas de la tabla. con este privilegio se puede especificar la tabla en la cláusula INTO de una sentencia INSERT. se puede especificar la tabla en la cláusula from de una sentencia SELECT. con este privilegio se puede especificar la tabla como tabla destino en una sentencia UPDATE. Estos 4 privilegios son soportados por virtualmente todos los productos SQL comerciales.  El privilegio UPDATE permite modificar filas en una tabla. Dr. El privilegio SELECT permite recuperar datos de una tabla. Manuel Jesús Sánchez Chero Página 8 de 14 .  El privilegio DELETE permite eliminar filas en una tabla.

Permite utilizar la sentencia INSERT. permite utilizar la sentencia UPDATE. Permite manejar procesos del servidor. Permite utilizar la sentencia SELECT.  Insert_priv. Permite parar el servidor mediante mysqladmin shutdown. Dr. Manuel Jesús Sánchez Chero Página 9 de 14 .  Shutdown_priv. Permite utilizar la sentencia DROP.  Reload_priv.  Delete_priv. Permite utilizar la sentencia CREATE  Drop_priv.  Create_priv.DESCRIPCIÓN DE LOS DIFERENTES PRIVILEGIOS DEL SERVIDOR MYSQL  Select_priv. Permite recargar el sistema mediante mysqladmin reload.  Process_priv. Permite utilizar la sentencia DELETE.  Update_priv.

Permite utilizar la sentencia ALTER TABLE. Manuel Jesús Sánchez Chero Página 10 de 14 . PRIVILEGES Es una palabra clave opcional que se puede incluir para cumplir con SQL-92. Permite otorgar permisos a otros usuarios.. File_priv.n ] ) ] ON { basededatos } TO cuenta-usuario [ WITH GRANT OPTION ] Argumentos ALL Especifica que se conceden todos los permisos aplicables. GRANT Crea una entrada en el sistema de seguridad que permite a un usuario de la base de datos actual trabajar con datos de la base de datos actual o ejecutar instrucciones SQL específicas.  Grant_priv..  Index_priv.. Permiso Dr..  Alter_priv.. Permite leer y escribir ficheros usando comando como SELECT INTO OUTFILE Y LOAD DATA INFILE. Sintaxis GRANT { ALL [ PRIVILEGES ] | permisos [ .n ] } { [ ( column [ .. Permite crear o borrar indices.

los permisos se aplican a todas las columnas de la tabla. INSERT. basededatos Es el nombre de la a base de datos sobre la que se conceden los permisos Cuenta-usuario Es la cuenta de seguridad a la que se aplican los permisos. una función de valores de tabla.Se trata de un permiso de objeto que se concede. DELETE. Manuel Jesús Sánchez Chero Página 11 de 14 .* TO 'demostracion'@'%' Dr. REFERENCES o UPDATE. Es posible suministrar una lista de columnas junto con los permisos SELECT y UPDATE. WITH GRANT OPTION Especifica que se concede a cuenta-usuario la capacidad de conceder el permiso de objeto especificado a otras cuentas de seguridad. La cláusula WITH GRANT OPTION sólo es válida con los permisos de objeto. Ejemplos  Crea un usuario demostración y le concede todo los permisos a todas la base de datos GRANT ALL PRIVILEGES ON *. n Marcador de posición que indica que el elemento se puede repetir en una lista separada por comas. Si no se suministra una lista de columnas con los permisos SELECT y UPDATE. Cuando se conceden permisos sobre una tabla. la lista de permisos puede incluir uno o más de los siguientes permisos: SELECT. column Es el nombre de la columna de la base de datos actual sobre la que se conceden los permisos.

ubigeo TO 'yaisa'@'%' Dr. Sobre la base de datos empresa. GRANT Select. Manuel Jesús Sánchez Chero Página 12 de 14 . create y Drop. En este ejemplo de crea un usuario yaisa y su contraseña karime y se le concede los permisos de select.* TO 'yaisa'@'%' IDENTIFIED BY 'karime'  en este ejemplo al usuario yaisa se le da el permiso de select sobre la tabla ubigeo de la base de datos empresa. Alter. index. insert. Delete. Update. GRANT Select ON empresa. Alter. Drop. update. Insert. delet. References ON empresa. Index. Create.

Manuel Jesús Sánchez Chero Página 13 de 14 . Dr. En este ejemplo se puede apreciar gráficamente que el usuario yaisa tiene el permiso de UPDATE sobre la columna SUELDO de la tabla persona de la base de datos empresa (última fila del gráfico).

¿Cuáles son los privilegios que especifica el estándar SQL ANSI/ISO? PRACTICA N° 4 Utilizando la base de datos EMPRESA dar los siguientes permisos a los Usuarios: Dr. ¿Qué es seguridad? ¿Qué es permiso? ¿Qué son usuarios de base de datos? ¿Qué entiende usted por validación de Usuarios? ¿Qué utilidad tiene la sentencia GRANT? ¿Qué es para usted DBMS? ¿Menciones algunos Manejadores de Base de Datos que usted conoces? ¿Cuáles son los tipos de privilegios que tiene el servidor de base de datos MYSQL? 9. Manuel Jesús Sánchez Chero Página 14 de 14 . 3. 7. 6. 5. 2.Preguntas de repaso 1. 4. 8.

Sign up to vote on this title
UsefulNot useful