Sei sulla pagina 1di 11

Centeno Marmolejo Sergio J.

Database Selected Topics


3CM10
September 30, 2015

Prctica 2. Privilegios y manejo


transaccional en una base de datos
relacional
Objetivo
El alumno aprender a utilizar correctamente los privilegios y el manejo de transacciones en una base de datos
relacional en Oracle.

Desarrollo

Abra una ventana de la Lnea de Comandos SQL de Oracle y ejecute las siguientes sentencias:
Nos conectamos como sysdba y creamos un nuevo usuario llamado user2 y se le asignan los privilegios de un
administrador. Posteriormente, nos conectamos con el usuario recin creado y desactivamos el autocommit.
Los resultados obtenidos en la linea de comandos son los siguientes:

1
Posteriormente creamos una tabla llamada banco con dos atributos. Y realizamos el primer inserta que
posteriormente ser borrado con la sentencia rollback.

Los resultados
obtenidos en la linea
de comandos
son los siguientes:

Comprobamos que el valor no se guarda debido a la sentencia rollback y a que la informacin nunca se baj a
disco.

2
Posteriormente, hacemos un segundo insert, pero en est
ocasin, los datos se bajan a disco con la sentencia commit. Y
comprobamos que incluso despus del rollback, estos datos
no son borrados. A diferencia del tercer insert, donde si se
eliminan.

La sentencia commit, nos permite bajar los datos a disco para


que no se eliminen con la sentencia Rollback.

Para la siguiente seccin es necesario que abra una segunda ventana, de igual forma como se hizo con la anterior
seccin. Ejecuta las siguientes sentencias en la secuencia indicada para que obtenga los resultados esperados.

3
Se realiza un insert en T1, posteriormente, nos conectamos en la T2 como el usuario HR, desactivamos el
autocomit y se trata de realizar un select de una tabla en el usuario user2, pero no se tienen los privilegios, por lo
cual en T1, se le asignan los privilegios necesarios a HR para que pueda hacer selects, inserts, updates en la tabla
banco.
Se realiza nuevamente la consulta en T2 y ya se permite visualizar la informacin.

Inciso B

T1 T2

4
Inciso C

T1 T2

En esta ocasin, podemos realizamos un update desde T2, y podemos observar en T1, que no se ha realizado el
cambio, hasta despus de haber bajado los datos a disco con la sentencia commit. Entonces se puede visualizar

Inciso D

T1 T2

en T1, la informacin actualizada.

Aqu, vemos que en T1, realizamos un update, y tratamos de visualizarlo en T2, pero no es posible hasta haber
puesto el commit en T2, entonces podemos visualizar la informacin actualizada.

5
6
Inciso E

T1 T2

En la imagen anterior tenemos que se searializan las transacciones de T1 y T2, para despus realizar la
actualizacin del campo debito de un lado y hasta que se realiza el commit entonces es cuando el usuario del lado

Inciso F

T1 T2

7
derecho puede ver los cambios.
En T1 tenemos una actualizacin sobre el campo debito donde el id sea 34 para despus a travs de una consulta
verificar que los cambios se efectuaron correctamente pero hasta el commit que los cambios se hacen de manera
permanente.
Mientras que en T2 tenemos una sentencia que nos permite leer todas las sentencias que se hicieron commit por
lo tanto se selecciona todos los datos de la tabla banco y se ven los cambios realizados, para a continuacin insertar
un nuevo registro y realizar un commit para bajar los datos a disco.

Inciso G

T1 T2

En esta ocasin, hacemos que las transacciones solo sean de lectura en T1. Es decir el user2. Posteriormente en
T2, tratamos de realizar un insert, pero no es hasta despus del commit, que se pueden visualizar los cambios.

8
Inciso H

T1 T2

En esta ocasin, iniciamos con una sentencia NoWait. Para bloquear una tabla. Posteriormente ne T2, se realiza
un inserta y los cambios se realizar de manera mucho posterior, hasta que realizamos un commit, entonces
podemos ver los cambios en user2.

9
Cuestionario
1. Menciona al menos tres distintas soluciones que se tienen en un sistema de bases de datos para mantener la
seguridad de los datos, y como es que se logran implementar.

Limitar el acceso a los procedimientos a ciertos usuarios, mediante permisos que asigne el
administrador.
Delimitar el acceso a los datos para ciertos usuarios, procedimientos y/o datos.
Declinar la coincidencia de horarios entre usuarios que coincidan.
Revisar el archivo de auditoria en el que se guardan todas las operaciones realizadas por los usuarios
Creacin de vistas para ciertos usuarios.

2. Describa las propiedades de las transacciones y cmo es que se garantiza su implementacin en una base de
datos.

Atomicidad: Es la propiedad de las transacciones que permite observarlas como operaciones atomicas:
ocurren totalmente o no ocurren. Se garantiza su implementacin mediante permisos que asigna el dba as
como con el comando commit.
Consistencia:La ejecucion aislada de la transaccion conserva la consistencia de la base de datos, se puede
garantizar de la misma manera que la propiedad anterior.
Aislamiento: Para cada par de transacciones que puedan ejecutarse concurrentemente Ti y Tj, se cumple
que para los efectos de Ti:
- Tj ha terminado antes de que comience Ti
- Tj ha comenzado despues de que termine Ti
Las transacciones son independientes entre si.
Durabilidad: El sistema gestor de bases de datos asegura que perduren los cambios realizados por una
transaccion que termina con exito.

3. D un ejemplo de los problemas presentes en las transacciones:


a) Lecturas sucias: Lectura de datos no comprometidos. (Retrocesos), se da cuando se ha ledo algn dato
que desapareci en un rollback
b) Lecturas no repetibles: Se obtienen resultados inconsistentes en lecturas repetidas. Se da cuando varios
usuarios estn accediendo a la base de datos y en lecturas seguidas se tienen distintos resultados por los
cambios generados por otros usuarios.
c) Lecturas fantasmas: Una lectura de una fila que no existia cuando se inicio la transaccion. Si se hace la
actualizacin de alguna fila y aparece un dato que ya ha desaparecido pero aun no se ven esos cambios
reflejados.

10
Conclusiones
La realizacin de esta prctica, nos permiti poder implementar conocimientos que previamente habamos
estudiado en el saln de clase.
Pudimos aplicar, uno de los tpicos ms importantes dentro del manejador de Oracle, que son lso privilegios.
Estos, nos permiten tener una amplia seguridad en nuestras bases de datos, pudiendo as, restringir acceso y dar
acceso a los usuarios que lo necesiten. Esto, nos permite tener una mejor seguridad en los datos y un mejor manejo
dentro de la empresa. Aplicando de cierta forma, el poder jerrquico que toda empresa tiene.
Gracias a estos privilegios, pudimos darnos cuenta de la importancia de desactivar el autocommit, el cual nos
permite realizar los cambios necesarios que cada uno de los usuarios que tenga que realizar, pero sin guardar los
datos en disco. Esto es muy importante, ya que podemos cometer errores a la hora de hacer un insert o un delete
dentro de nuestra base y provocar daos muy grandes en la misma. Pero desactivando el autommit, los datos
estarn en memoria y no cambiaran hasta que realicemos el commit, esto es muy valioso ya que nos permite
corregir nuestro errores.
Tambin est prctica, nos permiti poder el funcionamiento de las transacciones y como es que se aplica en los
usuarios, para poder realizar cambios de forma independiente.

11

Potrebbero piacerti anche