Sei sulla pagina 1di 8

INSTITUTO TECNOLOGICO DE

ACAPULCO
TALLER DE BASE DE DATOS
UNIDAD 4 SEGURIDAD
PROF. SEBASTIAN NUEZ
CESAR AUGUSTO
ESPINOZA OLEA SAUL
HORARIO 9:00-10:00
AULA: 713

INDICE

4.1 TIPOS DE USUARIO.


4.2 CREACION DE USUARIOS.
4.3 PRIVILEGIOS A USUARIOS
4.4 ROLES.
4.5 VISTAS..

TIPOS DE USUARIO
Existen tres tipos de un DBMS, los cuales se distinguen por el modo como
interactan con el sistema:
* PROGRAMADORES DE APLICACIONES: Son profesionales en computacin
que interactan con el sistema mediante instrucciones en DML, las cuales son
traducidas en un programa escrito en un lenguaje husped (Cobol, C++, C#,
Visual Basic, Java, Delphi) Estos programas se denominan Programas de
aplicaciones.
* USUARIOS CASUALES: Usuarios que interactan con el sistema sin escribir
programas, pero haciendo consultas en un lenguaje de consulta de datos.
* USUARIOS INGENUOS: Usuarios que interactan con el sistema poco
complejos que interactan con el sistema llamando algunos de los programas de
aplicacin permanentes escritos previamente. El administrador de base de datos
(DBA)
Proteccin dirigida a dos tipos de usuarios
Los que no tienen derechos de acceso
Los que tienen derechos limitados a ciertas acciones
El objetivo de la creacin de usuarios es establecer una cuenta segura y til, que
tenga los privilegios adecuados y los valores por defecto apropiados.
Cada cuenta debe tener una palabra clave o password asociada. Una cuenta en
una BD puede estar ligada con una cuenta de sistema operativo. Los passwords
son fijados cuando se crea un usuario y pueden ser alterados por el DBA o por el
usuario mismo. La BD almacena una versin encriptada del password en una tabla
del diccionario llamada dba_users. Si la cuenta en la BD est asociada a una
cuenta del sistema operativo puede evitarse la comprobacin del password,
dndose por vlida la comprobacin de la identidad del usuario realizada por el
SO. Un usuario Oracle tiene las siguientes caractersticas
Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y
que inicie con una letra.
Un mtodo de autentificacin, el ms comn es un password pero Oracle 10G
soporta otros mtodos como biometric, certificado y autentificacin por medio de
token.
Un tablespace de default, el cual es donde el usuario va a poder crear sus
objetos por defecto. Ojo, no porque tenga un tablespace de default va a significar

que puede crear objetos, o una quota de espacio. Estos permisos se asignan de
forma separada.
Un tablespace temporal, donde el usuario pueda crear sus objetos temporales y
hacer ordenar las consultas.
Un perfil de usuario, es decir las restricciones o privilegios de su cuenta. Una
cuenta MySQL se define en trminos de un nombre de usuario y el equipo o
equipos desde los que el usuario puede conectar al servidor. La cuenta tambin
tiene una contrasea (deseable). Los nombres de usuario y contraseas en
MySQL no estn relacionados con las del sistema operativo.
Nombre de usuarios en MySQL pueden tener como mximo 16 caracteres de
longitud
La contrasea es segura incluso si los paquetes TCP/IP pasan por un sniffer o la
base de datos mysql se captura.

4.2 CREACION DE USUARIOS


La creacin de los usuarios se realiza en la misma sentencia que el permiso
(grant) de acceso a una o varias bases de datos. La orientacin de MySQL va
cambiando con el tiempo y el uso que se le da a las bases de datos cada vez
trasciende ms el entorno web, actualmente hay dos formas de crear un usuario:
1. SENTENCIA GRANT
Podemos crear un usuario a la par que otorgarle uno o varios privilegios sobre los
objetos de una base de datos, o la base de datos completa.
Al encontrarse una sentencia de tipo GRANT, el motor de MySQL revisa si el
usuario existe previamente para el contexto que estamos asignndole permisos, y
si dicho usuario no est presente en el sistema, lo crea.
2. SENTENCIA CREATE
Por ejemplo, para crear el usuario Fernando:
$ mysql -u root
Welcome to the MySQL monitor. Commands end with; or \g.
Your MySQL connection id is 20
Server version: 5.0.67 Source distribution

mysql> CREATE USER 'Fernando'@'localhost' IDENTIFIED BY 'fer_pass';


Query OK, 0 rows affected (0,00 sec)
Por ejemplo, para crear el usuario fernando:
$ mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.0.67 Source distribution
mysql> CREATE USER 'fernando'@'localhost' IDENTIFIED BY 'fer_pass';
Query OK, 0 rows affected (0,00 sec)
El contexto 'localhost' define que el usuario solamente se puede conectar desde el
servidor de MySQL, y el IDENTIFIED BY define el password del usuario, se puede
omitir, para un usuario sin password, siempre que el modo SQL no sea
NO_AUTO_CREATE_USER.
4.3 PRIVILEGIOS A USUARIOS
En MySQL existen cinco niveles distintos de privilegios:
* Globales: se aplican al conjunto de todas las bases de datos en un servidor. Es
el nivel ms alto de privilegio, en el sentido de que su mbito es el ms general.
* De base de datos: se refieren a bases de datos individuales, y por extensin, a
todos los objetos que contiene cada base de datos.
* De tabla: se aplican a tablas individuales, y por lo tanto, a todas las columnas de
esas tabla.
*De columna: se aplican a una columna en una tabla concreta.
*De rutina: se aplican a los procedimientos almacenados. An no hemos visto
nada sobre este tema, pero en MySQL se pueden almacenar procedimientos
consistentes en varias consultas SQL.
Para que un usuario pueda hacer algo ms que consultar algunas variables del
sistema debe tener algn privilegio. Lo ms simple es conceder el privilegio para
seleccionar datos de una tabla concreta. Esto se hara as:
La misma sentenia GRANT se usa para aadir privilegios a un usuario existente.
mysql> GRANT SELECT ON prueba.gente TO anonimo;

Query OK, 0 rows affected (0.02 sec)


Esta sentencia concede al usuario 'annimo' el privilegio de ejecutar sentencias
SELECT sobre la tabla 'gente' de la base de datos 'prueba'.
Una vez creados los usuarios ser necesario dotarlos de privilegios para que
puedan realizar operaciones especficas en la base de datos. Estos privilegios
suelen clasificarse en privilegios del sistema (operaciones que afectan a todo el
sistema) y privilegios de objeto (tablas, vistas, etc.). Para conocer los privilegios y
su sintaxis es necesario consultar los manuales de referencia de su SGBD.
SELECT * FROM system_privilege_map; Las sentencias GRANT y REVOKE
permiten a los administradores de SGBD crear cuentas de usuario, conceder y
revocar derechos de esas cuentas. GRANT CONNECT, RESOURCE, CREATE
TABLE TO usuarioLimitado;
4.4 ROLES
Un rol es un papel desempeado por un individuo dentro de un conjunto de
personas. En la base de datos, siempre existen un conjunto de personas que
harn uso de ella, las acciones que pueden hacer son: visualizacin, modificacin,
agregacin, eliminacin de registros entre algunas otras, y la regla que permite
esto es conocida como privilegio.
Un ejemplo de un sistema punto de venta en donde existen usuarios tales como:
encargado de caja, supervisor de caja y gerente general, todos estos son usuarios
de un sistema de base de caja, supervisor de caja y gerente general, todos estos
son usuarios de un sistema de base de datos, la forma en que se comportaran
dentro de la BD es muy diferente.
El encargado de caja, no podr modificar o visualizar ciertos registros que se
encuentren en otra terminal, el supervisor de caja tendr ms privilegios al poder
accesar a los registros de todas las terminales sin poder crear informes mensuales
o trimestrales y por ltimo el gerente general podr hacer todo lo que los dos
anteriores y por supuesto podr crear informes y todas las acciones que el SGBD
le permita.
Algunos roles, ya vienen predeterminados tales como: DBA: corresponde al
sper-usuario, es el que tiene asignado implcitamente todos los privilegios del
sistema y dems roles.
CONNECT: este rol se le asigna automticamente a cada usuario que se cree en
la base de datos. Quiere decir que tiene privilegios sobre sus objetos como
conectarse a la base de datos y abrir una sesin, crear sus tablas, borrarlas y
actualizarlas; pero no para otros usuarios
RESOURCE: este rol le posibilita al usuario tener un conjunto de privilegios de
sistema un poco ms avanzado que CONNECT como crear triggers,
procedimientos, secuencias, etc.
EXP_FULL_DATABASE: este rol se asigna a usuarios para que puedan realizar
backups de la base de datos.

IMP_FULL_DATABASE: este rol se asigna a usuarios para que puedan restaurar


backups.
Para crear un rol debemos identificar:
Nombre
Rol o Roles predeterminados
System Privilegios (privilegios del sistema)
Privilegios sobre objetos (Se refieren a las autorizaciones para los usuarios que
desean manipular una base de datos de un Administrador).
La sentencia que permite crear roles es CREATE ROL. Su sintaxis es la siguiente
CREATE ROLE rol [ NOT IDENTIFIED | IDENTIFIED {BY password | USING
[usuario.] paquete | EXTERNALLY | GLOBALLY } ]; NOT IDENTIFIED indica que
no se requiere contrasea para utilizar el rol, INDENTIFIED BY password indica
que se requiere la contrasea especificada. EXTERNALLY crea un rol de usuario
externo y GLOBALLY crea un rol de usuario global.
4.5 VISTAS
Una vista es una tabla derivada de otras tablas (bsicas o virtuales).
Una vista se caracteriza porque:
Se
considera
que
forma
parte
del
esquema
externo.
Una vista es una tabla virtual (no tiene una correspondencia a nivel fsico)
Se puede consultar como cualquier tabla bsica.
Las actualizaciones se transfieren a la/s tabla/s original/es (con ciertas
limitaciones).
APLICACIONES DE LAS VISTAS.
Para la especificacin de tablas con informacin que se accede con frecuencia
pero no posee existencia fsica:
Informacin
derivada
de
la
relacin
entre
varias
tablas.
Informacin derivada de la formacin de grupos de tuplas (p.e. para la obtencin
de
estadsticas).
En general: informacin derivada de consultas complejas a la que se accede con
frecuencia.
Como mecanismo de seguridad: creacin de vistas con, nicamente, los
atributos de las tablas a los cuales se desea permitir acceder a determinados
usuarios.
Para la creacin de esquemas externos.

La

sintaxis

para

la

creacin

de

vistas

en

SQL

es

la

siguiente:

CREATE | REPLACE VIEW vista [(comalista_columna)]


AS expresin_tabla [with check option]
En donde:
expresin tabla es una consulta SQL cuyo resultado ser el contenido de la
vista.
WITH CHECK OPTION es opcional y se debe incluir si se desea actualizar la
vista de una manera ntegra.
Para la eliminacin de una vista se utiliza la instruccin:
DROP VIEW vista [restrict | cascade];

Potrebbero piacerti anche