Está en la página 1de 10

Tecnología en Análisis de Sistemas

Materia:
Base de Datos II

Ciclo:
M5A

Transacciones y
Seguridad

Trabajo Investigativo
Presentado por:
ABEL ORDOÑEZ
Ciudad: Cuenca, Ecuador
Fecha: 25 de marzo de 2020
Periodo: noviembre–abril 2020
Contenido
Transacciones SQL ........................................................................................................................3
Características de las transacciones en SQL Server ......................................................................3
Atomicidad: ..............................................................................................................................3
Consistencia: ............................................................................................................................3
Aislamiento: .............................................................................................................................3
Durabilidad: ..............................................................................................................................3
Sentencias para una transacción ..................................................................................................3
Control de las transacciones ........................................................................................................3
COMMIT. ..................................................................................................................................3
ROLLBACK. ................................................................................................................................3
SAVEPOINT. ..............................................................................................................................3
Control de Concurrencia ..............................................................................................................4
Manejo de transacciones en SQL .............................................. ¡Error! Marcador no definido.
Niveles de aislamiento en SQL .................................................. ¡Error! Marcador no definido.
dirty read: .................................................................................. ¡Error! Marcador no definido.
nonrepeatable read: ................................................................. ¡Error! Marcador no definido.
phantom read: .......................................................................... ¡Error! Marcador no definido.
Técnicas de control de concurrencia ............................................................................................4
Control de concurrencia pesimista ...........................................................................................4
Control de concurrencia optimista ...........................................................................................4
Dos técnicas de fase de bloqueo ..............................................................................................4
Control de concurrencia basado en la marca de tiempo ..........................................................4
Técnicas de recuperación de bases de datos ...............................................................................5
Técnica Actualización diferida ..................................................................................................5
Técnica de recuperación Actualización Inmediata ...................................................................5
Mecanismos de Seguridad ...........................................................................................................5
Usuarios y esquemas ................................................................................................................6
Dominio de Seguridad ..........................................................................................................6
Privilegios .............................................................................................................................6
Roles .....................................................................................................................................6
Configuración del almacenamiento y cuotas........................................................................7
Límites a los recursos ...........................................................................................................7
Monitoreo ............................................................................................................................7
Auditoría ......................................................................................................................................7
TABLAS Y VISTAS ......................................................................................................................8
Transacciones SQL
Una transacción es una unidad de trabajo compuesta por diversas tareas, cuyo resultado final
debe ser que se ejecuten todas o ninguna de ellas.

Características de las transacciones en SQL Server


Atomicidad: Significa que todas las operaciones dentro de la secuencia de trabajo se
completen satisfactoriamente. Si no es así, la transacción se abandona en el punto del error y
las operaciones previas retroceden a su estado inicial.

Consistencia: significa que las instrucciones en una transacción tienen un estado consistente.
La transacción lleva la base de datos subyacente de un estado estable a otro,

Aislamiento: cada transacción es una entidad independiente. Una transacción no afectará a


ninguna otra transacción

Durabilidad: cada transacción se mantiene en un medio confiable que no se puede deshacer


mediante fallas del sistema. Además, si una falla del sistema ocurre en medio de una
transacción, los pasos completados deben deshacerse o los pasos incompletos deben
ejecutarse para terminar la transacción.

Sentencias para una transacción


La sentencia que se utiliza para indicar el comienzo de una transacción es 'BEGIN TRAN'. Si
alguna de las operaciones de una transacción falla hay que deshacer la transacción en su
totalidad para volver al estado inicial en el que estaba la base de datos antes de empezar. Esto
se consigue con la sentencia 'ROLLBACK TRAN'.

Control de las transacciones


Existen tres comandos básicos de control en las transacciones SQL:

COMMIT. Para guardar los cambios.


ROLLBACK. Para abandonar la transacción y deshacer los cambios que se hubieran hecho en
la transacción.

SAVEPOINT. Crea checkpoints, puntos concretos en la transacción donde poder deshacer la


transacción hasta esos puntos.

Los comandos de control de transacciones se usan sólo con INSERT, DELETE y UPDATE. No
pueden utilizarse creando tablas o vaciándolas porque las operaciones se guardan
automáticamente en la base de datos.
EJEMPLO

Control de Concurrencia
El control de transacciones concurrentes en una base de datos brinda un eficiente desempeño
del Sistema de Base de Datos, puesto que permite controlar la ejecución de transacciones que
operan en paralelo, accesando a información compartida y, por lo tanto, interfiriendo
potencialmente unas con otras.

Técnicas de control de concurrencia


Control de concurrencia pesimista
Este método implementa cerraduras que impide que los usuarios de alterar los datos de una
manera que afecta a otros usuarios. Cuando un usuario realiza una acción en una entidad que
aplica un bloqueo en la entidad, otros usuarios no pueden llevar a cabo acciones en esa
entidad hasta que el propietario de la cerradura libera

Control de concurrencia optimista


Utilizando el método de control de concurrencia optimista, los usuarios no bloquean los datos
cuando lo usan. Cuando un usuario actualiza los datos, el sistema comprueba la base de datos
si otro usuario ha cambiado los datos después de leerlo. Tras la actualización de otro usuario,
se genera un error.

Dos técnicas de fase de bloqueo


El bloqueo es una operación que asegura un permiso de lectura o de escritura a una entidad.
Por ejemplo, la cerradura (X). La entidad X está bloqueado por un usuario. Usando esta
técnica, una transacción está bien formado si: que se bloquee una entidad antes de que lee o
escribe a ella

Control de concurrencia basado en la marca de tiempo


Un número entero monótonamente creciente llamada marca de tiempo muestra la edad de
una operación en una entidad. Un valor de marca de tiempo más grande representa una
operación reciente. método basado en la marca de tiempo timestamp utiliza para controlar la
ejecución de las transacciones concurrentes.

Técnicas de recuperación de bases de datos


Técnica Actualización diferida
Se encarga de demorar la escritura de la base en el disco hasta que la transacción alcance el
commit. Para esto, durante la ejecución la actualización se realiza en el Log y en los buffers o
en un área local a la transacción

reglas básicas de la Actualización diferida :


Los cambios realizados por una transacción T nunca son grabados en el disco hasta que la T
alcanza el commit.

Una transacción T nunca puede alcanzar el commit hasta que grabó todas sus operaciones de
actualización en el Log y el log fue grabado en el disco.

Técnica de recuperación Actualización Inmediata


La base de datos puede ser actualizada sin tener que esperar que la transacción llegue a su
confirmación.

Se pueden distinguir dos categorías principales de algoritmos de actualización inmediata:

• Algoritmo de recuperación DESHACER/NO-REHACER


• Algoritmo de recuperación DESHACER/REHACER.

seguridad
La seguridad de la información se ocupa de proteger la confidencialidad, disponibilidad e
integridad en base de datos de todos los activos de conocimiento de la organización.

Confidencialidad: se trata del aspecto más importante de la seguridad de base de datos. Este
objetivo se alcanza a través de La encriptación ha de aplicarse a datos en reposo

Integridad en base de datos: busca garantizar que sólo las personas autorizadas a ello podrán
acceder a información privilegiada de la empresa.

Disponibilidad: hace referencia a la necesidad de que las bases de datos y toda la información
que contienen estén listas para su uso.

Mecanismos de Seguridad
El sistema de base de datos ORACLE provee control de acceso discrecional, el cual es un medio
de restricción de acceso basado en privilegios

Oracle administra la seguridad de la base de datos utilizando diferentes servicios o facilidades:

• Usuarios y esquemas
• Privilegios
• Roles
• Configuración del almacenamiento y cuotas
• Límites a los recursos
• Monitoreo
Usuarios y esquemas
Cada base de datos tiene una lista de nombres de usuarios. Para acceder a la base de datos, un
usuario debe usar una aplicación e intentar entablar una conexión con un nombre de usuario
válido de la base de datos.

Dominio de Seguridad
Cada usuario tiene un dominio de seguridad,

o Acciones (privilegios y roles) disponibles para el usuario.


o Límites de espacio en el Tablespace para los usuarios.
o Límites de utilización de los recursos del sistema para los usuarios.

Privilegios
Los privilegios de una base de datos ORACLE pueden ser divididos en dos categorías distintas:
Privilegios de sistema y Privilegios de objetos.

Privilegios de sistema

Los Privilegios de sistema permiten a los usuarios desempeñar una acción particular dentro del
sistema o una acción particular sobre un tipo determinado de objeto. Por ejemplo, el privilegio
para crear un tablespace o para borrar filas de una tabla en la base de datos son privilegios de
sistema.

Privilegios de objetos

Los privilegios de objetos permiten a los usuarios desempeñar acciones sobre un esquema
específico. Por ejemplo, el privilegio para borrar filas de una tabla específica es un privilegio de
objetos. Los privilegios de objetos son asignados a usuarios finales.

Roles
ORACLE provee los roles para una administración más fácil y controlada de los privilegios. Los
roles son un grupo con nombre de privilegios, que son asignados a usuarios o a otros roles.

o Reducida asignación de privilegios: En lugar de otorgar explícitamente el mismo


conjunto de privilegios a muchos usuarios el administrador de la base de datos puede
asignar los privilegios a un rol y éste a un grupo de usuarios.
o Administración dinámica de los privilegios: Cuando los privilegios de un grupo deben
cambiar, sólo los privilegios del rol necesitan ser modificados. Los dominios de
seguridad de todos los usuarios a los que asignó dicho rol, reflejarán automáticamente
los cambios hechos en el rol.
o Selectiva disponibilidad de los privilegios: Los roles asignados a los usuarios pueden ser
selectivamente activados o desactivados. Esto permite control específico de los
privilegios de los usuarios en cualquier situación.
o Consciencia de aplicación: Una aplicación de la base de datos puede ser diseñada para
habilitar o inhabilitar roles automáticamente cuando un usuario intenta usar la
aplicación.
Configuración del almacenamiento y quotas
ORACLE da medios para limitar el uso del espacio de disco asignado a la base de datos, de
acuerdo a cada usuario; incluyendo el default tablespaces, temporary tablespaces y los
tablespaces quotas.

default tablespaces
Cuando un usuario crea una tabla, índice, o cluster y no se especifica ningún tablespace que
contenga físicamente al objeto, el default tablespace es utilizado si el usuario tiene privilegio
para crear el objeto.

temporay tablespaces
Cuando un usuario ejecuta una sentencia SQL que requiere la creación de objetos temporarios

tablespaces quotas.
Las tablespace quotas permiten un control selectivo sobre el espacio en disco que es
consumido por cada objeto de cada esquema.

Límites a los recursos


A cada usuario le es asignado un perfil que especifica las limitaciones sobre varios recursos del
sistema disponibles para el usuario, incluyendo:

El número de sesiones concurrentes que el usuario puede establecer

El tiempo de CPU:

- disponible para la sesión del usuario

disponible para una simple llamada a ORACLE realizada por una sentencia SQL.

Cantidad de I/O:

Monitoreo
un monitoreo selectivo de las acciones de los usuarios para ayudar en la investigación de usos
maliciosos de la base de datos. El monitoreo puede realizarse a tres niveles distintos:

o Monitoreo de sentencias: Es el monitoreo de sentencias SQL específicas sin atender


concretamente a los objetos. Este tipo de monitoreo puede hacerse para todos los
usuarios del sistema o se puede enfocar sólo a algunos usuarios seleccionados.
o Monitoreo de privilegios: Es el monitoreo de los privilegios del sistema sin atender
concretamente a los objetos. Este tipo de monitoreo puede hacerse para todos los
usuarios del sistema o se puede enfocar sólo a algunos usuarios seleccionados.
o Monitoreo de objetos: Es el monitoreo de los accesos a esquemas específicos sin
considerar el usuario. Monitorea las sentencias permitidas por los privilegios.

Auditoría
auditoría es un conjunto de características que permite al administrador de la base de datos y
a los usuarios hacer un seguimiento del uso de la base de datos. El administrador de base de
datos puede definir la actividad de auditoría predeterminada. La información de las auditorías
se almacena en el diccionario de datos, en la tabla SYS.AUD$ o en la pista de auditoría del
sistema operativo (si lo permite).
TABLAS Y VISTAS

Oracle almacena en la tabla SYS.AUD$ o en la pista de auditoría del sistema operativo (si lo
permite)

o ALL_AUDIT_POLICIES
o ALL_AUDIT_POLICY_COLUMNS
o ALL_DEF_AUDIT_OPTS
o ALL_REPAUDIT_ATTRIBUTE
o ALL_REPAUDIT_COLUMN
o APEX_DEVELOPER_AUDIT_LOG
o DBA_AUDIT_EXISTS
o DBA_AUDIT_OBJECT
o DBA_AUDIT_POLICIES
o DBA_AUDIT_POLICY_COLUMNS
o DBA_AUDIT_SESSION
o DBA_AUDIT_STATEMENT
o DBA_AUDIT_TRAIL
o DBA_COMMON_AUDIT_TRAIL
o DBA_FGA_AUDIT_TRAIL
o DBA_OBJ_AUDIT_OPTS
o DBA_PRIV_AUDIT_OPTS
o DBA_REPAUDIT_ATTRIBUTE
o DBA_REPAUDIT_COLUMN
o DBA_STMT_AUDIT_OPTS
o GV_$XML_AUDIT_TRAIL
o KU$_AUDIT_DEFAULT_VIEW
o KU$_AUDIT_OBJ_BASE_VIEW
o KU$_AUDIT_OBJ_VIEW
o KU$_AUDIT_VIEW
o KU$_PROC_AUDIT_VIEW
o KU$_PROCDEPOBJ_AUDIT_VIEW
o KU$_PROCOBJ_AUDIT_VIEW
o KU$_10_1_AUDIT_VIEW
o MGMT$AUDIT_LOG
o MGMT$ESA_AUDIT_SYSTEM_REPORT
o SM$AUDIT_CONFIG
o USER_AUDIT_OBJECT
o USER_AUDIT_POLICIES
o USER_AUDIT_POLICY_COLUMNS
o USER_AUDIT_SESSION
o USER_AUDIT_STATEMENT
o USER_AUDIT_TRAIL
o USER_OBJ_AUDIT_OPTS
o USER_REPAUDIT_ATTRIBUTE
o USER_REPAUDIT_COLUMN
o V_$XML_AUDIT_TRAIL
Estas vistas se pueden ver ejecutando la consulta SQL:

o SELECT view_name
o FROM dba_views
o WHERE view_name LIKE '%AUDIT%'
o ORDER BY view_name

Las principales son:

o DBA_AUDIT_OBJECT: guarda la información relativa a la auditoría de


o DBA_AUDIT_SESSION: guarda la información relativa a la auditoría de los inicios de
sesión de los usuarios.
o DBA_AUDIT_TRAIL: muestra la auditoría estándar (de la tabla AUD$)
o USER_AUDIT_TRAIL: muestra la auditoría estándar (de la tabla AUD$) relativa al
usuario actual
o DBA_FGA_AUDIT_TRAIL: muestra información de auditoría de grano fino (obtenida de
FGA_LOG$). La auditoría de grano fino (FGA) extiende la auditoría estándar y, además,
captura la sentencia SQL que ha sido ejecutada.

COMPROBAR ACTIVACIÓN DE AUDITORÍA


La activación de la auditoría en Oracle viene definida por el valor del parámetro: audit_trail.

Para comprobar si la auditoría está activa ejecutamos el siguiente query

select name, value

from v$parameter

where name like 'audit_trail'

Activar la auditoria
ALTER SYSTEM SET audit_trail = "DB" SCOPE=SPFILE;

Desactivar la auditoria
ALTER SYSTEM SET audit_trail = "NONE" SCOPE=SPFILE;

Posibles valores del parámetro audit_trail:


• db: activa la auditoría y los datos se almacenarán en la taba SYS.AUD$ de Oracle.
• none: desactiva la auditoría de la base de datos.
• xml: activa la auditoría de la base de datos, los sucesos serán escritos en ficheros XML
del sistema operativo.
• os: activa la auditoría de la base de datos. Los sucesos auditados se escribirán en la
pista de auditoría del sistema operativo,
EJEMPLO

Bibliografía
(s.f.). Obtenido de https://www.monografias.com/trabajos908/oracle/oracle2.shtml#mecan

(s.f.). Obtenido de http://administracionbasedatosiutllano.blogspot.com/2012/07/tecnicas-de-


recuperacion-de-base-de.html

(s.f.). Obtenido de https://www.seabrookewindows.com/EgWrRGwW7/

(s.f.). Obtenido de http://oracle-facil.blogspot.com/2014/05/auditoria-en-oracle-11g.html

(s.f.). Obtenido de https://diego.com.es/transacciones-en-sql

También podría gustarte