Sunteți pe pagina 1din 14

BASE DE DATOS II

TEMA

SEGURIDAD

MODULO

02
Elaborado por:

Dr. Manuel Jess Snchez Chero


Profesor del Curso

TEMA

14

Material Didctico para uso exclusivo en clase

Tema 4
SEGURIDAD
Objetivos
Al finalizar este captulo, el participante aprender a:

Conocer que es un esquema de seguridad.

Conocer los identificadores de Usuarios.

Conocer el proceso de validacin de usuarios.

Conceder privilegios a usuarios.

SEGURIDAD SQL

Cuando alguien confa sus datos a un sistema de gestin de base de datos, la


seguridad

de los datos almacenados es una preocupacin primordial. La

seguridad es especialmente importante en un DBMS basado en SQL, puesto


que SQL interactivo hace el acceso a la base de datos muy sencillo. Los
requerimientos de seguridad de una base de datos de produccin tpica son
muchos y muy variados:

Los datos de cualquier tabla dada deberan ser accesibles a algunos


usuarios, pero el acceso a otros debera ser impedido.

Algunos usuarios deberan tener permitido actualizar datos en una tabla


particular, a otros slo se les debera permitir recuperar datos.

Para algunas tablas, el acceso debera estar restringido en base a las


columnas.

Algunos usuarios deberan tener denegado el acceso mediante SQL


interactivo a una tabla, pero se les debera permitir programas de
aplicacin que actualicen la tabla.

Dr. Manuel Jess Snchez Chero

Pgina 2 de 14

El esquema de seguridad SQL, proporciona estos tipos de proteccin para datos


en una base de datos relacional.

CONCEPTO DE SEGURIDAD

La implementacin de un esquema de seguridad y el reforzamiento de las


restricciones de seguridad son responsabilidad del software DBMS. El lenguaje
SQL define un panorama general para la seguridad de la base de datos, y las
sentencias SQL se utilizan para especificar restricciones de seguridad. El
esquema de seguridad SQL se basa en tres conceptos principales:

Los Usuarios, son los actores de la base de datos. Cada vez que el
DBMS recupera, inserta, suprime o actualiza los datos, lo hace a cuenta
de algn usuario.
El DBMS permitir o prohibir la accin dependiendo de qu usuario est
efectuando la peticin.

Los Objetos de la base de datos, son los elementos a los cuales se


puede aplicar la proteccin de seguridad SQL. La seguridad se aplica
generalmente a las tablas y bases de datos enteras tambin pueden ser
protegidos. La mayora de los usuarios tendrn permiso para utilizar
ciertos objetos de la base de datos, pero tendrn prohibido el uso de otros.

Los Privilegios, son las acciones que un usuario tiene permitido efectuar
para un determinado objeto de la base de datos. Un usuario puede tener
permiso para SELECT e INSERT sobre filas en una tabla determinada,
pero puede carecer de permiso para utilizar DELETE o UPDATE filas de
una tabla. Un usuario diferente puede tener un conjunto diferente de
privilegios.

La Figura muestra cmo podran ser utilizados estos conceptos de seguridad


en un esquema de seguridad para la base de datos.

Para establecer un esquema de seguridad en una base de datos se utiliza la


sentencia SQL GRANT, para especificar que usuario tienen que privilegios
sobre los objetos de la base de datos.
Dr. Manuel Jess Snchez Chero

Pgina 3 de 14

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, un
nombre breve que lo identifica al usuario dentro del software DBMS. El id-usuario
se encuentra en el ncleo de la seguridad SQL. Toda sentencia SQL ejecutada
por el DBMS se lleva a cabo a cuenta de un id-usuario especfico. El id-usuario
determina si la sentencia va a ser permitida o prohibida por el DBMS. En una
base de datos de produccin los id-usuarios son asignados por el administrador.
En una base de datos puede haber nicamente un solo id-usuario, que identifica
al usuario que ha creado y que tiene la propiedad de la base de datos.

El estndar SQL ANSI/ISO permite que los id-usuarios tengan hasta 18


caracteres y requiere que sean nombres SQL vlidos, pero muchos productos
DBMS comerciales tienen diferentes restricciones. En DB2 por ejemplo los idusuarios no pueden tener ms de ochos caracteres. En SYBASE los id-usuarios

Dr. Manuel Jess Snchez Chero

Pgina 4 de 14

pueden tener hasta 30 caracteres, por eso es mejor limitar los id-usuarios en
ocho o menos caracteres.

En la siguiente figura muestra a varios usuarios que necesitan acceso a la base


de datos.

ASIGNACIONES DE ID-USUARIOS PARA LA BASE DE DATOS

El estndar SQL ANSI/ISO utiliza el trmino id-autorizacin en vez de id-usuario


y usted encontrar ocasionalmente este trmino utilizado en otra documentacin
SQL. Tcnicamente id-autorizacin es un trmino ms preciso, puesto que el
papel de la identificacin (id) es determinar la autorizacin o privilegio en la base
de datos. Existen situaciones como observa en la figura varios usuarios usan el
mismo id-usuario como es el caso del Dpto. de Procesado de Pedidos, sin
embargo la prctica ms comn es asignar un id-usuario diferente a cada
persona.

VALIDACION DE USUARIO

El estndar SQL ANSI/ISO especifica que los id-usuarios proporciona seguridad


en la base de datos, pero no dice nada con respecto al mecanismo de asociar

Dr. Manuel Jess Snchez Chero

Pgina 5 de 14

un id-usuario con una sentencia SQL. Por

ejemplo, cuando se escriben

sentencias SQL en una utilidad Cmo determina el DBMS qu el id-usuario


est asociado con las sentencias? La mayora de las implementaciones SQL
comerciales establecen un id-usuario para cada sesin de base de datos. En
SQL Interactivo, la sesin comienza cuando arranca el programa el programa
SQL interactivo y dura hasta que se abandona el programa. Todas las sentencias
SQL utilizadas durante la sesin estn asociadas con el id-usuario especificado
para la sesin.

Generalmente debe suministrarse tanto un id-usuario como una contrasea


asociada al comienzo de una sesin. El DBMS comprueba la contrasea para
verificar que el usuario est, en efecto autoriza a utilizar el id-usuario que
suministra.

Algunos productos DBMS implementan su propia seguridad por ejemplo cuando


se utiliza MYSQL hay que especificar un nombre de usuario y la contrasea
asociada en la orden que arrncale programa.

Conectarse al MYSQL en modo texto

[root@pnichiclayo /]# mysql -u root p

Dr. Manuel Jess Snchez Chero

Pgina 6 de 14

Enter password:******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.41
Type help; or \h for help. Type \c to clear the buffer.
mysql>

Conectarse al MYSQL en modo grfico

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. El estndar SQL
ANSI/ISO especifica 4 privilegios para tablas

Dr. Manuel Jess Snchez Chero

Pgina 7 de 14

El privilegio SELECT permite recuperar datos de una tabla, con este


privilegio, se puede especificar la tabla en la clusula from de una
sentencia SELECT.

El privilegio INSERT permite insertar nuevas filas en una tabla, con este
privilegio se puede especificar la tabla en la clusula INTO de una
sentencia INSERT.

El privilegio DELETE permite eliminar filas en una tabla, con este privilegio
se puede especificar la tabla en la clusula FROM de una sentencia
DELETE.

El privilegio UPDATE permite modificar filas en una tabla, con este


privilegio se puede especificar la tabla

como tabla destino en una

sentencia UPDATE. El privilegio UPDATE puede restringirse a columnas


especificas de la tabla, permitiendo actualizaciones de estas columnas,
pero desautorizando actualizaciones a otras columnas.

Estos 4 privilegios son soportados por virtualmente todos los productos SQL
comerciales.

Muchos DBMS comerciales ofrecen privilegios adicionales sobre las tablas


por ejemplo MYSQL soporta un privilegio ALTER y INDEX para las tablas.
Un usuario con el privilegio ALTER sobre una tabla particular puede utilizar
la sentencia ALTER TABLE para modificar la definicin de una tabla, un
usuario con el privilegio INDEX puede crear un ndice para la tabla con la
sentencia CREATE INDEX.

Dr. Manuel Jess Snchez Chero

Pgina 8 de 14

DESCRIPCIN DE LOS DIFERENTES PRIVILEGIOS DEL SERVIDOR MYSQL

Select_priv, Permite utilizar la sentencia SELECT.

Insert_priv, Permite utilizar la sentencia INSERT.

Update_priv, permite utilizar la sentencia UPDATE.

Delete_priv, Permite utilizar la sentencia DELETE.

Create_priv, Permite utilizar la sentencia CREATE

Drop_priv, Permite utilizar la sentencia DROP.

Reload_priv, Permite recargar el sistema mediante mysqladmin reload.

Shutdown_priv, Permite parar el servidor mediante

mysqladmin

shutdown.

Process_priv, Permite manejar procesos del servidor.

Dr. Manuel Jess Snchez Chero

Pgina 9 de 14

File_priv, Permite leer y escribir ficheros usando comando como SELECT


INTO OUTFILE Y LOAD DATA INFILE.

Grant_priv, Permite otorgar permisos a otros usuarios.

Index_priv, Permite crear o borrar indices.

Alter_priv, Permite utilizar la sentencia ALTER TABLE.

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 especficas.
Sintaxis
GRANT
{ ALL [ PRIVILEGES ] | permisos [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { basededatos }
TO cuenta-usuario
[ WITH GRANT OPTION ]

Argumentos
ALL
Especifica que se conceden todos los permisos aplicables.
PRIVILEGES
Es una palabra clave opcional que se puede incluir para cumplir con SQL-92.
Permiso

Dr. Manuel Jess Snchez Chero

Pgina 10 de 14

Se trata de un permiso de objeto que se concede. Cuando se conceden permisos


sobre una tabla, una funcin de valores de tabla, la lista de permisos puede
incluir uno o ms de los siguientes permisos: SELECT, INSERT, DELETE,
REFERENCES o UPDATE. Es posible suministrar una lista de columnas junto
con los permisos SELECT y UPDATE. Si no se suministra una lista de columnas
con los permisos SELECT y UPDATE, los permisos se aplican a todas las
columnas de la tabla.
n
Marcador de posicin que indica que el elemento se puede repetir en una lista
separada por comas.
column
Es el nombre de la columna de la base de datos actual sobre la que se conceden
los permisos.
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.
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 clusula WITH GRANT
OPTION slo es vlida con los permisos de objeto.
Ejemplos

Crea un usuario demostracin y le concede todo los permisos a todas la


base de datos
GRANT ALL PRIVILEGES ON *.* TO 'demostracion'@'%'

Dr. Manuel Jess Snchez Chero

Pgina 11 de 14

En este ejemplo de crea un usuario yaisa y su contrasea karime y se le


concede los permisos de select, insert, update, delet, index, Alter, create y
Drop. Sobre la base de datos empresa.

GRANT Select, Insert, Update, Delete, Index, Alter, Create, Drop,


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.

GRANT Select ON empresa.ubigeo TO 'yaisa'@'%'

Dr. Manuel Jess Snchez Chero

Pgina 12 de 14

En este ejemplo se puede apreciar grficamente 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 grfico).

Dr. Manuel Jess Snchez Chero

Pgina 13 de 14

Preguntas de repaso

1.
2.
3.
4.
5.
6.
7.
8.

Qu es seguridad?
Qu es permiso?
Qu son usuarios de base de datos?
Qu entiende usted por validacin de Usuarios?
Qu utilidad tiene la sentencia GRANT?
Qu es para usted DBMS?
Menciones algunos Manejadores de Base de Datos que usted conoces?
Cules son los tipos de privilegios que tiene el servidor de base de datos
MYSQL?
9. Cules son los privilegios que especifica el estndar SQL ANSI/ISO?

PRACTICA N 4
Utilizando la base de datos EMPRESA

dar los siguientes permisos a los

Usuarios:

Dr. Manuel Jess Snchez Chero

Pgina 14 de 14

S-ar putea să vă placă și