Documente Academic
Documente Profesional
Documente Cultură
Informacin
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
TTULO:
SEGURIDAD DE LA INFORMACION-CONTROL DE ACCESO
1. OBJETIVO:
2. DESARROLLO:
Mtodo
1. Iniciar sesin como administrador del DBMS
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Figura3. Creacin del login udla con password y parmetros por defecto Fuente: Cristian Lpez
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Este paso corresponde a un conocimiento nuevo adquirido durante la prctica, como es la
creacin de un login con su respectiva contrasea (no se debe confundir la creacin de un
login con la creacin de un usuario que ser redactado y explicado ms adelante), una vez
que se ha creado el login y la contrasea un requisito de la practica es asignar por defecto el
idioma y la base de datos, entonces para ellos utilizaremos las palabras claves o palabras
reservadas default_database y default_language, esta asignacin de idioma y base de
datos por defecto tambin corresponden a una nueva erudicin que forma parte de la
creacin de login para la base de datos hotel.
4. Iniciar una nueva sesin y tratar de ingresar al DBMS cul es el evento?, qu sucede?,
qu puede hacer?, por qu?
Trataremos de ingresar a la cuenta udla con el password asignado anteriormente
udla1234.
Figura4. Inicio de sesin con SQL Server Authentication Fuente: Cristian Lpez
El DMS no nos permite ingresar ya que nos muestra un mensaje de error donde nos indica
que no existe un usuario asociado a esta cuenta. Para solucionar este problema crearemos
un usuario esta accin corresponde al literal 5 de la prctica.
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Figura 5. Mensaje de error de que no se encuentra asignado un usuario a la cuenta Fuente: Cristian
Lpez
5. Cree el usuario de base de datos estudiante en la base de datos hotel asociado al
inicio de sesin udla. Qu puede hacer?
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
El usuario ya esta creado pero para poder entrar como una cuenta de SQL Authentication y
que pueda ingresar a la base de datos ser necesario realizar algunas configuraciones. Como
administrador nos dirigiremos a Properties.
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
El Microsoft SQL Server Managment Studio nos desplegara un mensaje en donde nos
indicara que las configuraciones no surgiran efecto hasta que reiniciemos los servicios de
SQL.
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Figura 9. Mensaje de reinicio necesario del servidor SQL para que surjan efecto los cambios relizados
Fuente: Cristian Lpez
Nos dirigiremos al SQL Server Configuration Manager y reiniciaremos el servicio de: SQL
Server (MSSQLSERVER).
Figura10. Reinicio del Servicio SQL Server (MSSQLSERVER) Fuente: Cristian Lpez
Esperaremos a que el proceso de reinicio termine.
Profesor: Ing. Jonathan Carrillo S.
Pgina 7 de 28
INFORME DE LABORATORIO # 3
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Para comprobar la factibilidad y la funcionalidad de los permisos asignados por el
administrador el primer paso es comprobar que el usuario estudiante no puede visualizar
informacin de la tabla CLIENTES.
Figura 13. Ejecucin del comando select en usuario estudiante, login udla Fuente: Cristian Lpez
Posteriormente le otorgaremos los permisos de select en la tabla clientes mediante el
comando: grant select on cliente to estudiante, esta nomenclatura de lenguaje es
denominada DCL.
Figura14. Concesin del privilegio select en la tabla cliente a estudiante Fuente: Cristian Lpez
Una vez que el administrador ejecuto el comando para otorgar los privilegios de select en
la tabla clientes al estudiante entonces ahora si al momento de que el usuario estudiante
ejecute el comando: select * from clientes; entonces podr visualizar toda la informacin
de la tabla clientes.
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Figura 15. Ejecucin de un select sobre la tabla clientes Fuente: Cristian Lpez
7. Conceder el privilegio al usuario estudiante para insertar y borrar tuplas de las tablas
PASES y TIPOSERVICIO. Adicionalmente conceda el privilegio para que el usuario
pueda visualizar los registros de la tabla TIPOSERVICIO.
Figura16. Concesin de privilegios en las tablas Paises y Tipo_Servicio a estudiante Fuente: Cristian
Lpez
Para ese literal tendremos que realizar dos privilegios por separado ya que el primer requisito
nos indica que debemos conceder el permiso de insertar y borrar en la tabla pases, mientras
que en el segundo requisito nos indica que debemos permitirle a estudiante: insertar, borrar y
adems visualizar los registros de la tabla TipoServicio, por esta razn debemos asignar dos
permisos por separado como se muestra en la figura 16.
Profesor: Ing. Jonathan Carrillo S.
Pgina 10 de 28
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
8. Permitir a la cuenta estudiante pueda obtener informacin de la tabla SERVICIOS y que
pueda propagar el privilegio a otras cuentas.
Figura17. Concesin de privilegios a estudiante with grant option Fuente: Cristian Lpez
Este comando corresponde a un conocimiento nuevo adquirido ya que originalmente
otorgbamos privilegios a un usuario en especifico, pero ahora con la opcin with grant
option; este usuario adems de tener los privilegios que le ha otorgado el administrador, el
tambin podr otorgar dichos privilegios a otras cuentas.
9. Crear un inicio de sesin con nombre udlanet y contrasea udlanet1234, base de
datos por defecto hotel e idioma Spanish.
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
De la misma manera que creamos el login udla crearemos el login udlanet y le
asignaremos como base de datos por defecto hotel y lenguaje por defecto Spanish.
10. Cree el usuario de base de datos invitado en la base de datos hotel asociado al inicio
de sesin udlanet.
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Figura 20. Concesin de privilegios por parte del usuario estudiante a invitado Fuente: Cristian
Lpez
Para comprobar que los privilegios que el usuario estudiante ha otorgado han surgido efecto
nos dirigiremos a la cuenta invitado
Figura21. Ejecucin del comando select en el login udlanet asociado a invitado Fuente: Cristian Lpez
12. El DBA desea otorgar permisos limitados de SELECT sobre la cuenta invitado para que
pueda obtener slo habitaciones con un costo entre 50 y 60 dlares y pueda conocer los
atributos nmero de habitacin, precio y nmero de camas.
En este paso los permisos que quiere otorgar el administrador tienen ciertas restricciones es
por esa razn que para concretar este permiso debemos hacer uso de nuestros
Profesor: Ing. Jonathan Carrillo S.
Pgina 13 de 28
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
conocimientos sobre vistas, sintaxis lgica, y estructura de una opcin select, adems
debemos hacer uso de las palabras reservadas and y between. Empezaremos por ejecutar
un diagrama para poder visualizar de mejor manera las relaciones de las tablas de nuestra
base de datos hotel, despus de realizar esta paso conoceremos como es que se relacionan
las tablas (claves primerias y claves forneas).
Primary key
Id Precio
Foreing key
Tipo_Habitacion
Columna
Precio
NumHabitacion
Tabla
Precio_Habitaciones
Habitaciones
Cama
TipoHabitacion
Figura 22. Tabla que contiene: claves primarias, claves foraneas, columna, tabla Fuente: Cristian Lpez
Una vez identificadas las tablas y las relaciones entren ellas, claves primarias y claves
forneas entonces procederemos a crear la vista
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Figura24. Concesin de privilegio select sobre la vista a invitado Fuente: Cristian Lpez
Para comprobar que los permisos han sido funcionales haremos un select sobre la vista
PrecioHabitacion en el usuario invitado.
Figura 25. Ejecucin del comando selecta en la cuenta invitado Fuente: Cristian Lpez
13. Permitir a la cuenta estudiante que actualice slo el atributo telfono de la tabla
CLIENTES.
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Figura 26. Concesin del privilegio update en la tabla cliente el campo telfono a estudiante Fuente:
Cristian Lpez
Este accin corresponde a un nuevo conocimiento adquirido durante la prctica, ya que por lo
general hemos otorgado un privilegio a cierto usuario sobre toda la tabla, pero en esta
ocasin no vamos a otorgar los permisos sobre toda la tabla, sino que el usuario estudiante
va a tener el privilegio de actualizar nicamente el atributo telfono de la tabla clientes, los
dems atributos de la tabla estarn restringidos. A continuacin comprobaremos los permisos
asignados a estudiante. Tambin ejecutaremos un select para comprobar que los datos se
han actualizado.
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Figura27. Ejecucin del comando update en la cuenta estudiante Fuente: Cristian Lpez
14. Revocar el privilegio al estudiante de ingresar datos en la tabla PAISES.
Este literal tambin corresponde a un nuevo conocimiento adquirido durante la prctica, ya
que ahora para revocar privilegios la sintaxis del comando cambia a la siguiente forma:
revoke insert on Paises from estudiante, esta lnea de cdigo ejecutada por el administrador
de la base de datos hotel, nos indica que se le ha revocado el permiso de insertar tuplas en la
tabla pases al estudiante
Figura 28. Revocacin de privilegios en la tabla pases a estudiante Fuente: Cristian Lpez
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Efectivamente el usuario estudiante ya no puede insertar tuplas en la tabla Paises
Figura29. Ejecucin del comando insert en la tabla pases Fuente: Cristian Lpez
15. Revocar el privilegio de visualizar informacin de la tabla servicios a la cuenta cliente.
En este punto el administrador de la base de datos hotel debe ser muy cauteloso ya que
anteriormente ha otorgado el privilegio de select a estudiante pero adems le ha concedido la
opcin de propagar esos privilegios a otras cuenta por esa razn al momento de revocarle el
permiso debemos usar la palabra clave cascade, esto quiero decir que la revocacin de
permisos va a ser en cascada, este conocimiento fue adquirido durante la realizacin de la
practica.
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Figura 30. Revocacin en cadena del privilegio select en la tabla Servicios al estudiante Fuente: Cristian
Lpez
16. Otorgar el permiso a la cuenta estudiante para insertar datos por medio de un
procedimiento almacenado denominado InsertarServicios.
En anteriores prcticas ya hemos utilizado procedimientos almacenados es por esa razn que
conocemos su: sintaxis, palabras claves, estructura, etc. Procederemos a insertar toda la
informacin que el administrador desee programar. Como es un procedimiento almacenado
debemos otorgar el privilegio de ejecutar el nombre del procedimiento almacenado a
estudiante.
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
Figura 32. Creacin del role y concesin de privilegios al role Fuente: Cristian Lpez
b. Asignar el rol al usuario estudiante, realizar las respectivas pruebas (para evidenciar el
trabajo), entre otras estudiadas en clase y realizadas en esta prctica.
Figura33. Concesin de los privilegios del rol al usuario estudiante Fuente: Cristian Lpez
Datos adicionales:
Es posible eliminar el role mediante el comando:
INFORME DE LABORATORIO # 3
4. CONCLUSIONES:
Las conferencias y revocaciones por parte del administrador de base de datos fomentan la
integridad de los datos y proporcionan un medio indispensable para asegurar que las
modificaciones realizadas en la base de datos por los usuarios autorizados no provoquen
alteraciones innecesarias y daos de la consistencia de los datos.
En casos fortuitos puede ser necesario proteger los datos almacenados en la base de datos
frente a accesos no autorizados y alteracin de registros por parte de usuarios
malintencionados.
La creacin de una vista puede ser muy til para mejorar la seguridad y consistencia de los
datos, tambin para limitar el acceso de los datos a los que el usuario puede acceder, es
decir puede visualizarlos pero con ciertas restricciones.
INFORME DE LABORATORIO # 3
correspondientes a la tabla, de esta forma es posible seguir conservando la integridad y
consistencia de los datos.
Los roles facilitan la concesin de privilegios a cada usuario que forma parte de una
organizacin, ya que su funcionalidad y eficiencia radica en otorgar uno o varios roles a cada
usuario y de esta forma cada usuario obtendr todos los privilegios que se encuentran dentro
del rol que se le concedi.
5. BIBLIOGRAFA:
Silberschatz, A., Korth, H., & Sudarshan, S. (2002). Fundamentos de Base de Datos (Cuarta
ed.). Madrid: Mc Graw Hill.
26
de
Abril
de
2015,
de:
INFORME DE LABORATORIO # 3
Grant
(Transact-SQL)
(sf)
Recuperado
el
26
https://msdn.microsoft.com/es-ec/library/ms187965.aspx
de
de
2015,
de
Abril
de
2015,
de
Abril
de
2015,
de
6. ANEXOS:
create database hotel;
use hotel;
CREATE TABLE tipo_servicio (
NombreSERVICIO varchar(20) NOT NULL,
PRIMARY KEY ( NombreSERVICIO )
) ;
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INTO
INTO
INTO
INTO
INTO
INTO
tipo_servicio
tipo_servicio
tipo_servicio
tipo_servicio
tipo_servicio
tipo_servicio
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
('COMEDOR');
('LAVANDERIA');
('RESTAURANTE');
('INTERNET');
('TELEFONO');
('BEBIDAS');
INTO
INTO
INTO
INTO
paises
paises
paises
paises
VALUES
VALUES
VALUES
VALUES
('ALEMANIA');
('ESPAA');
('FRANCIA');
('PORTUGAL');
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
INSERT INTO clientes VALUES ('12345', 'ESPAA', 'Felipe', 'Iglesias',
'Lpez', 'Avda Los Castros, 44', '942344444', 'Buen cliente');
INSERT INTO clientes VALUES ('44444', 'ESPAA', 'Luis', 'Garca', 'Garca',
'Calle Mayor, 67 ', '942456444', null);
INSERT INTO clientes VALUES ('456789', 'FRANCIA', 'Ludovic', 'Giuly',
'Bourquin', '18 avenue Alsacen Cour', '37890194', null);
CREATE TABLE tipo_habitacion (
Categoria int NOT NULL ,
Camas int NOT NULL,
Exterior char(2) NOT NULL check (Exterior in ('SI', 'NO')),
Salon char(2) NOT NULL check (Salon in ('SI', 'NO')),
Terraza char(2) NOT NULL check (Terraza in ('SI', 'NO')),
PRIMARY KEY ( Categoria )
) ;
INSERT
INSERT
INSERT
INSERT
INTO
INTO
INTO
INTO
tipo_habitacion
tipo_habitacion
tipo_habitacion
tipo_habitacion
VALUES
VALUES
VALUES
VALUES
(1,
(2,
(3,
(4,
1,
2,
3,
1,
'SI',
'SI',
'SI',
'SI',
'NO',
'NO',
'NO',
'SI',
'NO');
'NO');
'NO');
'NO');
INTO
INTO
INTO
INTO
INTO
INTO
INTO
habitaciones
habitaciones
habitaciones
habitaciones
habitaciones
habitaciones
habitaciones
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
(101,
(102,
(103,
(104,
(105,
(106,
(107,
1);
1);
1);
2);
2);
3);
4);
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
INSERT INTO servicios VALUES (2, 'LAVANDERIA', 'Lavado de Camisa', 2, 7,
'2009-01-01');
INSERT INTO servicios VALUES (3, 'LAVANDERIA', 'Lavado de pantalon', 1, 7,
'2009-01-01');
CREATE TABLE temporada (
TEMPORADA int NOT NULL ,
FechaINICIO date NOT NULL,
FechaFINAL date NOT NULL,
Tipo char(1) not null check (tipo in ('B','M','A')) ,
PRIMARY KEY ( TEMPORADA )
) ;
set dateformat ymd
INSERT INTO temporada
INSERT INTO temporada
INSERT INTO temporada
INSERT INTO temporada
INSERT INTO temporada
VALUES
VALUES
VALUES
VALUES
VALUES
(1,
(2,
(3,
(4,
(5,
'2009-01-01',
'2009-04-01',
'2009-06-01',
'2009-09-01',
'2009-11-01',
'2009-03-31',
'2009-05-31',
'2009-08-31',
'2009-10-31',
'2009-12-31',
'B');
'M');
'A');
'M');
'B');
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
precio_habitacion
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
VALUES
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
CREATE TABLE reserva_habitac (
idRESERVA numeric identity(1,1) NOT NULL ,
FechaENTRADA date NOT NULL,
FechaSALIDA date NOT NULL,
IVA numeric(5,2) NOT NULL,
NumHABITACION int NOT NULL,
CLIENTE char(12) NOT NULL,
PRIMARY KEY ( idRESERVA ) ,
foreign KEY (cliente) references CLIENTES (Identificacion ),
foreign key (numHabitacion) references HABITACIONES (NumHABITACION )
) ;
INSERT
INTO
reserva_habitac
(FechaENTRADA
,
FechaSALIDA
NumHABITACION , CLIENTE)
VALUES ( '2009-03-15', '2009-03-25', 0.07,101, '12345');
INSERT
INTO
reserva_habitac
(FechaENTRADA
,
FechaSALIDA
NumHABITACION , CLIENTE)
VALUES ( '2009-03-15', '2009-03-25', 0.07, 102, '12345');
INSERT
INTO
reserva_habitac
(FechaENTRADA
,
FechaSALIDA
NumHABITACION , CLIENTE)
VALUES ( '2009-02-16', '2009-02-21', 0.07,103, '12345');
INSERT
INTO
reserva_habitac
(FechaENTRADA
,
FechaSALIDA
NumHABITACION , CLIENTE)
VALUES ( '2009-03-16', '2009-03-21', 0.07,104, '44444');
INSERT
INTO
reserva_habitac
(FechaENTRADA
,
FechaSALIDA
NumHABITACION , CLIENTE)
VALUES ( '2009-03-16', '2009-03-21', 0.07,105, '44444');
INSERT
INTO
reserva_habitac
(FechaENTRADA
,
FechaSALIDA
NumHABITACION , CLIENTE)
VALUES ( '2009-03-16', '2009-03-21', 0.07,106, '44444');
INSERT
INTO
reserva_habitac
(FechaENTRADA
,
FechaSALIDA
NumHABITACION , CLIENTE)
IVA
IVA
IVA
IVA
IVA
IVA
IVA
idSERVICIOS
,Fecha
,Cantidad
Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015
INFORME DE LABORATORIO # 3
INSERT INTO gastos ( idgastos,idRESERVA ,
,Precio)
VALUES (2, 1,1, '2009-03-15 11:00', 1,10);
INSERT INTO gastos (idgastos, idRESERVA ,
,Precio)
VALUES (3, 4, 2, '2009-03-15 09:30', 1,2);
set IDENTITY_INSERT dbo.gastos off
idSERVICIOS
,Fecha
,Cantidad
idSERVICIOS
,Fecha
,Cantidad