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

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

En DB2 por ejemplo los idusuarios no pueden tener más de ochos caracteres. En SYBASE los id-usuarios Dr. Manuel Jesús Sánchez Chero Página 4 de 14 . En una base de datos puede haber únicamente un solo id-usuario. El id-usuario se encuentra en el núcleo de la seguridad SQL.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 una base de datos de producción los id-usuarios son asignados por el administrador. El estándar SQL ANSI/ISO permite que los id-usuarios tengan hasta 18 caracteres y requiere que sean nombres SQL válidos. un nombre breve que lo identifica al usuario dentro del software DBMS. 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. que identifica al usuario que ha creado y que tiene la propiedad de la base de datos. pero muchos productos DBMS comerciales tienen diferentes restricciones.

Existen situaciones como observa en la figura varios usuarios usan el mismo id-usuario como es el caso del Dpto. por eso es mejor limitar los id-usuarios en ocho o menos caracteres. 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. 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. de Procesado de Pedidos. puesto que el papel de la identificación (id) es determinar la autorización o privilegio en la base de datos. sin embargo la práctica más común es asignar un id-usuario diferente a cada persona. pero no dice nada con respecto al mecanismo de asociar Dr. Manuel Jesús Sánchez Chero Página 5 de 14 . En la siguiente figura muestra a varios usuarios que necesitan acceso a la base de datos.pueden tener hasta 30 caracteres.

Conectarse al MYSQL en modo texto [root@pnichiclayo /]# mysql -u root –p Dr. 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. 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. Todas las sentencias SQL utilizadas durante la sesión están asociadas con el id-usuario especificado para la sesión. En SQL Interactivo. la sesión comienza cuando arranca el programa el programa SQL interactivo y dura hasta que se abandona el programa. El DBMS comprueba la contraseña para verificar que el usuario está. Por ejemplo. Generalmente debe suministrarse tanto un id-usuario como una contraseña asociada al comienzo de una sesión. en efecto autoriza a utilizar el id-usuario que suministra.un id-usuario con una sentencia SQL.

Manuel Jesús Sánchez Chero Página 7 de 14 .41 Type ‘help.’ or ‘\h’ for help. 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.23. Type ‘\c’ to clear the buffer. Your MySQL connection id is 3 to server version: 3. Commands end with . El estándar SQL ANSI/ISO especifica 4 privilegios para tablas Dr.Enter password:****** Welcome to the MySQL monitor. or \g.

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

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

Permite crear o borrar indices. Sintaxis GRANT { ALL [ PRIVILEGES ] | permisos [ .n ] } { [ ( column [ .  Index_priv.n ] ) ] ON { basededatos } TO cuenta-usuario [ WITH GRANT OPTION ] Argumentos ALL Especifica que se conceden todos los permisos aplicables. Permite leer y escribir ficheros usando comando como SELECT INTO OUTFILE Y LOAD DATA INFILE. Permiso Dr... Manuel Jesús Sánchez Chero Página 10 de 14 .... Permite otorgar permisos a otros usuarios. File_priv. 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..  Alter_priv. PRIVILEGES Es una palabra clave opcional que se puede incluir para cumplir con SQL-92. Permite utilizar la sentencia ALTER TABLE.

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

 En este ejemplo de crea un usuario yaisa y su contraseña karime y se le concede los permisos de select. Create. insert. Manuel Jesús Sánchez Chero Página 12 de 14 . GRANT Select.ubigeo TO 'yaisa'@'%' Dr. GRANT Select ON empresa. Sobre la base de datos empresa. References ON empresa.* 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. index. Alter. Alter. Insert. Index. Drop. update. Delete. create y Drop. delet. Update.

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).

Manuel Jesús Sánchez Chero Página 14 de 14 . 2. 5. 4. 8. 7. ¿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.Preguntas de repaso 1. ¿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. 6. 3.

Sign up to vote on this title
UsefulNot useful