Sunteți pe pagina 1din 28

Ingeniera en Electrnica y Redes de

Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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:

Aplicar tcnicas de control de acceso discrecional basado en la concesin y revocacin de


privilegios.

2. DESARROLLO:
Mtodo
1. Iniciar sesin como administrador del DBMS

Figura1. Inicio de sesin con Windows Authentication Fuente: Cristian Lpez


Como en laboratorio anteriores se ha realizado este paso, es comn y bsico para todo
programador de base de datos, iniciar sesin con una cuenta de Windows Authentication en
(local) y tendr todos los privilegios de administrador, mas adelante veremos cmo logearse
con una cuenta de SQL.
2. Crear una base de datos denominada Hotel y ejecutar el script SQL anexo a este
documento.

Profesor: Ing. Jonathan Carrillo S.


Pgina 1 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015

INFORME DE LABORATORIO # 3

Figura2. Creacin de la base de datos hotel Fuente: Cristian Lpez


La creacin de una base de datos y el uso de la misma representa el lenguaje tcnico y
formal de un DMBS por esa razn es responsabilidad del programador conocer este paso
indispensable, ya que sin una base de datos no podremos realizar ninguna accin ni en SQL
ni en ningn otro DMBS.
3. Crear un inicio de sesin con nombre udla y contrasea udla1234, base de datos por
defecto hotel e idioma Spanish. No exigir cambio de contrasea en la siguiente
conexin. No asignar ningn permiso.

Figura3. Creacin del login udla con password y parmetros por defecto Fuente: Cristian Lpez

Profesor: Ing. Jonathan Carrillo S.


Pgina 2 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo 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.

Profesor: Ing. Jonathan Carrillo S.


Pgina 3 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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?

Figura6. Creacin de un usuario asociado a un login Fuente: Cristian Lpez


En este literal de prctica tambin hemos aprendido a crear un nuevo usuario y asociarle a un
inicio de sesin en nuestro caso el inicio de sesin creado anteriormente y tambin asociarle
a la base de datos que ya hemos creado hotel. Para realizar este paso la sintaxis es la
siguiente: create user nombredelusuario for login nombredellogin whith default_schema=
nombredelaBDD;
Por el momento el usuario creado estudiante no puede realizar absolutamente ninguna
accin ms que entrar a la base de datos hotel ya que no tiene asignado u otorgado ningn
permiso por parte del administrador.

Profesor: Ing. Jonathan Carrillo S.


Pgina 4 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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.

Figura 7. Propiedades del DMBS Fuente: Cristian Lpez


Una vez en properties nos dirigiremos al campo de Security, y en la parte de Server
Authentication seleccionaremos SQL Server and Windows Authentication

Profesor: Ing. Jonathan Carrillo S.


Pgina 5 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015

INFORME DE LABORATORIO # 3

Figura 8. Propiedad de Seguridad Fuente: Cristian Lpez

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.

Profesor: Ing. Jonathan Carrillo S.


Pgina 6 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015

Cristian Gustavo Lpez

INFORME DE LABORATORIO # 3

Figura11. Proceso de Reinicio del SQLServer (MSSQLSERVER) Fuente: Cristian Lpez


Y ahora si ya podremos ingresar al DMBS mediante una cuenta de SQL Server
Authentication, con el login udla y password udla1234 que tiene asociado al usuario
estudiante.

Figura12. Inicio de sesin con udla Fuente: Cristian Lpez


6. Otorgar el permiso respectivo para que el usuario estudiante pueda visualizar la
informacin de la tabla CLIENTES. Qu sucede?, Por qu?

Profesor: Ing. Jonathan Carrillo S.


Pgina 8 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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.

Profesor: Ing. Jonathan Carrillo S.


Pgina 9 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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.

Figura18. Creacin de login udlanet Fuente: Cristian Lpez

Profesor: Ing. Jonathan Carrillo S.


Pgina 11 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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.

Figura 19. Creacin del usuario invitado Fuente: Cristian Lpez


Utilizando la misma sintaxis para crear el usuario estudiante asociado a la cuenta udla
tambin crearemos el usuario invitado pero asociado a la cuenta udlanet.
11. El usuario estudiante conceder el privilegio de visualizar la informacin de la tabla
SERVICIOS a la cuenta invitado.
En pasos anteriores el administrador de la base de datos hotel le haba otorgado los
permisos de visualizar la tabla servicios pero tambin le brindo la opcin de conceder ese
privilegio a otras cuentas, por esa razn el usuario estudiante podr otorgar permisos de
select en la tabla Servicios al usuario invitado. Primero nos ubicaremos en la cuenta
estudiante y ejecutaremos los comandos necesarios para otorgarle los privilegios a
invitado

Profesor: Ing. Jonathan Carrillo S.


Pgina 12 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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

y trataremos de ejecutar el privilegi de select en

Servicios. Y efectivamente el usuario invitado ya puede visualizar el registro de la tabla


Servicios.

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

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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

Figura 23. Creacin de una vista Fuente: Cristian Lpez


En este punto es importante destacar que como el privilegio conjuntamente con las
restricciones se encuentran en una vista, el administrador debe darle otorgarle permiso select
sobre la vista al usuario invitado.

Profesor: Ing. Jonathan Carrillo S.


Pgina 14 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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.

Profesor: Ing. Jonathan Carrillo S.


Pgina 15 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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.

Profesor: Ing. Jonathan Carrillo S.


Pgina 16 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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

Profesor: Ing. Jonathan Carrillo S.


Pgina 17 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo 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.

Profesor: Ing. Jonathan Carrillo S.


Pgina 18 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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.

Profesor: Ing. Jonathan Carrillo S.


Pgina 19 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015

INFORME DE LABORATORIO # 3

Figura31. Creacin del procedimiento almacenado Fuente: Cristian Lpez


3. CUESTIONARIO DE INVESTIGACIN:
Investigar el control de acceso basado en roles y el respectivo otorgamiento de privilegios para que a
los usuarios se les asignen los permisos, por ejemplo:
a. Crear el rol TEST y proporcionar los privilegios para crear tablas.

Profesor: Ing. Jonathan Carrillo S.


Pgina 20 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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:

Profesor: Ing. Jonathan Carrillo S.


Pgina 21 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015

Cristian Gustavo Lpez

INFORME DE LABORATORIO # 3

Figura 34. Eliminacin del role test Fuente. Cristian Lpez

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.

Al momento de otorgar privilegios a un usuario en una tabla especifica de la base de datos,


es posible limitar y restringir estos privilegios, como por ejemplo permitir a un usuario
nicamente la modificacin de algunos campos de la tabla y no de todos los campos

Profesor: Ing. Jonathan Carrillo S.


Pgina 22 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015

Cristian Gustavo Lpez

INFORME DE LABORATORIO # 3
correspondientes a la tabla, de esta forma es posible seguir conservando la integridad y
consistencia de los datos.

Cuando el administrador desea revocar un privilegio a un usuario o rol que anteriormente


haba tenido la opcin de otorgar privilegios a otros usuarios es necesario realizar una
revocacin en cadena, la palabra clave cascade permite realizar una revocacin en
cascada. Tambin es posible utilizar la palabra clave restrict, en caso de que exista una
retirada de privilegios en cadena devuelve un error y la accin de retirada de privilegios no se
lleva a cabo.

Es necesario e indispensable realizar una comprobacin de la funcionalidad de las


concesiones y revocaciones ejecutadas, en cada una de la cuentas, para as evitar
modificaciones y alteraciones en registros no autorizados, confidenciales o privados por parte
de los usuarios.

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.

Creacin de una vista en SQL (sf) Recuperado el 26 de Abril de 2015, de


https://msdn.microsoft.com/es-ec/library/ms187956.aspx

Creacin de un usuario en SQL (sf) Recuperado el 26 de Abril de 2015, de


https://msdn.microsoft.com/es-ec/library/aa337545.aspx

Creacin de un Procedimiento Almacenado (sf) Recuperado el 26 de Abril de 2015, de


https://msdn.microsoft.com/es-ec/library/ms345415.aspx

Ejecutar un Procedimiento Almacenado (sf) Recuperado el 26 de Abril de 2015, de


https://msdn.microsoft.com/es-ec/library/ms189915.aspx

Definir procedimiento almacenado. (sf) Recuperado


https://msdn.microsoft.com/es-es/library/ms176113.aspx

26

de

Abril

de

2015,

de:

Profesor: Ing. Jonathan Carrillo S.


Pgina 23 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Fecha de realizacin:
23 de Abril de 2015
Fecha de entrega:
30 de Abril de 2015

Cristian Gustavo Lpez

INFORME DE LABORATORIO # 3

SQL Configuration Manager (sf) Recuperado el 26 de Abril de


https://technet.microsoft.com/en-us/library/ms174212%28v=sql.110%29.aspx

Grant
(Transact-SQL)
(sf)
Recuperado
el
26
https://msdn.microsoft.com/es-ec/library/ms187965.aspx

Revoke (Transact-SQL) (sf)


Recuperado
el 26
https://msdn.microsoft.com/en-us/library/ms187728.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');

CREATE TABLE paises (


pais char(20) NOT NULL,
PRIMARY KEY ( pais )
) ;
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO

paises
paises
paises
paises

VALUES
VALUES
VALUES
VALUES

('ALEMANIA');
('ESPAA');
('FRANCIA');
('PORTUGAL');

CREATE TABLE clientes (


Identificacion char(12) NOT NULL,
Pais char(20) NOT NULL,
Nombre char(12) NOT NULL,
Apellido1 char(12) NOT NULL,
Apellido2 char(12) ,
Direccion char(30) NOT NULL,
Telefono char(12) NOT NULL,
Observaciones char(50) ,
PRIMARY KEY ( Identificacion ),
FOREIGN KEY (Pais) references paises (pais) );

Profesor: Ing. Jonathan Carrillo S.


Pgina 24 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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');

CREATE TABLE habitaciones (


NumHABITACION int NOT NULL,
TIPO_HABITACION int NOT NULL,
PRIMARY KEY ( NumHABITACION ),
Foreign key (tipo_habitacion) references tipo_habitacion ( Categoria )
) ;
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

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

CREATE TABLE servicios (


idSERVICIOS int NOT NULL ,
NombreSERVICIO varchar(20) NOT NULL,
Descripcion char(30) NOT NULL,
Precio money NOT NULL,
IVA numeric (5,2) NOT NULL,
Fecha date NOT NULL,
PRIMARY KEY ( idSERVICIOS ),
foreign key (nombreServicio) references tipo_servicio ( NombreSERVICIO )
) ;
set dateformat ymd;
INSERT INTO servicios VALUES (1, 'COMEDOR', '1 menu del Dia', 10, 7, '200901-01');

Profesor: Ing. Jonathan Carrillo S.


Pgina 25 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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');

CREATE TABLE precio_habitacion (


idPrecio int NOT NULL ,
Precio money NOT NULL,
TEMPORADA int NOT NULL,
TIPO_HABITACION int NOT NULL,
PRIMARY KEY ( idPrecio ),
foreign key (temporada) references temporada(temporada),
foreign key (tipo_habitacion) references tipo_habitacion(categoria )
) ;
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

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

(1, 30, 1, 1);


(2, 35, 2, 1);
(3, 40, 3, 1);
(4, 35, 4, 1);
(5, 30, 5, 1);
(6, 35, 1, 2);
(7, 40, 2, 2);
(8, 45, 3, 2);
(9, 40, 4, 2);
(10, 35, 5, 2);
(11, 40, 1, 3);
(12, 45, 2, 3);
(13, 50, 3, 3);
(14, 45, 4, 3);
(15, 40, 5, 3);
(16, 50, 1, 4);
(17, 55, 2, 4);
(18, 60, 3, 4);
(19, 55, 4, 4);
(20, 50, 5, 4);

Profesor: Ing. Jonathan Carrillo S.


Pgina 26 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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

VALUES ( '2009-03-16', '2009-03-21', 0.07,107, '44444');


CREATE TABLE gastos (
idGASTOS int identity NOT NULL ,
idRESERVA numeric NOT NULL,
idSERVICIOS int NOT NULL,
Fecha datetime NOT NULL,
Cantidad int NOT NULL,
Precio money not null,
PRIMARY KEY ( idGASTOS ),
foreign KEY (idreserva) references reserva_habitac (idREserva ),
foreign key (idservicios ) references SERVICIOS (idSERVICIOS )
) ;
set IDENTITY_INSERT dbo.gastos on
INSERT INTO gastos ( idgastos,idRESERVA ,
,Precio)
VALUES ( 1,1,1, '2009-03-15 12:00', 1,10);

idSERVICIOS

,Fecha

,Cantidad

Profesor: Ing. Jonathan Carrillo S.


Pgina 27 de 28

Ingeniera en Electrnica y Redes de


Informacin

BASES DE DATOS DISTRIBUIDAS


Cristian Gustavo Lpez

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

Profesor: Ing. Jonathan Carrillo S.


Pgina 28 de 28

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