You are on page 1of 47

INDICE

1. INTRODUCCION A LA BASE DE DATOS........................................................... 6 BASE DE DATOS ................................................................................................ 6 COMPONENTES DE UNA BASE DE DATOS ..................................... 6 TIPOS DE BASES DE DATOS. ............................................................... 7 FUNCIONES DE LAS BASES DE DATOS. ......................................... 7 AUDITORIA EN BASES DE DATOS ..................................................... 7

1.1.

1.1.1. 1.1.2. 1.1.3. 1.1.4. 1.2.

BASE DE DATOS ORACLE ............................................................................. 8 ESTRUCTURAS DE ORACLE ................................................................. 9

1.2.1. 1.3. 2.

TIPOS DE DATOS EN ORACLE..................................................................... 9

PROGRAMACIÓN CON PL/SQL .......................................................................... 11 INTRODUCCION ............................................................................................... 11 TIPOS DE OBJETOS EN ORACLE ............................................................. 11 IDENTIFICADORES ................................................................................. 12 TIPOS DE OPERADORES ...................................................................... 12

2.1. 2.2.

2.2.1. 2.2.2. 2.3. 2.4. 3.

PROCEDIMIENTOS ALMACENADOS........................................................ 12 TRIGGERS .......................................................................................................... 13

DESARROLLO............................................................................................................ 15 SERVICIOS DE ORACLE. .............................................................................. 15 CREACIÓN DE USUARIO EN ORACLE10G............................................ 15 MODELO DE LA BASE DE DATOS. ........................................................... 17

3.1. 3.2. 3.3.

3.4. CREACIÓN DE SECUENCIAS, DISPARADORES Y PROCEDIMIENTOS ALMACENADOS EN ORACLE SQLDEVELOPER. ........ 20 3.5. DEMOSTRACIÓN .............................................................................................. 24 INSERTAR UN REGISTRO EN LA TABLA CLIENTE. ................. 24 ACTUALIZAR UN REGISTRO EN LA TABLA CLIENTE. ............ 25 ELIMINAR UN REGISTRO EN LA TABLA CLIENTE ................... 25

3.5.1. 3.5.2. 3.5.3. 4. 5. 6.

CONCLUSIONES ....................................................................................................... 27 BIBLIOGRAFÍA .......................................................................................................... 28 ANEXOS ....................................................................................................................... 29

1

AUDITORIA EN BASE DE DATOS ORACLE 10G.

2011

INDICE DE GRAFICOS
Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración Ilustración 1.- Partes principales de una Base de Datos ...................................6 2.- Componentes Principales de Una base de Datos. ...................8 3.- Levantar Servicios de Oracle10g ............................................... 15 4.- Nuevo Usuario.................................................................................. 16 5.-Privilegios del Sistema ................................................................... 16 6.-Roles del Sistema ............................................................................ 16 7.-Modelo de Base de Datos ............................................................... 18 8.- Iniciar Sesión................................................................................... 19 9.- Cargar el script en el Isqlplus. .................................................... 19 10.- Usuario Objetos Creados ............................................................ 20 11.- Oracle Sqldeveloper ..................................................................... 20 12.- Conexión a oracle ........................................................................ 21 13.- Secuencia del IDUSER ................................................................ 21 14.- Secuencia ID .................................................................................. 22 15.- Trigger LOGOFF............................................................................ 22 16.- Trigger LOGON .............................................................................. 23 17.- Procedimiento Validar ................................................................ 24 18.- Procedimiento Guardar .............................................................. 24

2

AUDITORIA EN BASE DE DATOS ORACLE 10G.

2011

CREACION DE TABLAS MEDIANTE LA UTILIZACION DE SENTENCIAS SQL Y AUDITORIA EN LA BASE DE DATOS ORACLE 10G.

3

AUDITORIA EN BASE DE DATOS ORACLE 10G.

2011

OBJETIVOS

OBJETIVO GENERAL Conocer la funcionalidad de la Base de datos Oracle, a través del diseño de tablas y sentencias SQL, que permitan ingresar datos y realizar una auditoría para salvaguardar la información registrada.

OBJETIVOS ESPECÍFICOS Conocer el uso esencial de la base de datos Oracle 10g y sentencias SQL. Aplicar distintos objetos que permitan insertar datos en las tablas. Auditar el inicio y cierre de sesión del usuario, automáticamente las irregularidades detectadas. reportando

-

4

el cual permitirá ingresar. Como sabemos Oracle es una potente herramienta cliente/servidor para la gestión de Bases de Datos. salida. En el siguiente informe se desarrollara el diseño de tablas mediante la conexión a una base de datos Oracle 10g. Con Oracle Database 10g.AUDITORIA EN BASE DE DATOS ORACLE 10G. su información se consolida de manera segura y está siempre disponible. Una Base de datos Oracle incluye mejoras de rendimiento y de utilización de recursos. la primera Base de Datos Relacional. Los sistemas implementados con Bases de Datos Oracle disponen de diversas herramientas que permiten el manejo eficaz de los datos importantes de una empresa y gestionar toda la entrada. 2011 INTRODUCCIÓN La mayoría de Organizaciones que almacenan su información en bases de datos no disponen de herramientas de software que les proporcionen la posibilidad de detectar si se han realizado accesos autorizados pero no adecuados a sus datos. actualizar y modificar datos a través de la utilización de sentencias SQL como Procedimientos almacenados y Triggers. independientemente de que se necesite dar soporte a decenas de miles de usuarios. ofreciendo seguridad y disponibilidad. muy necesarias. La necesidad de manejar gran cantidad de información de una manera rápida y segura ha obligado a recurrir a soluciones informáticas. protección y elaboración de la información que almacena. 5 . y así mismo dar seguridad a la información registrada. asegurando el desempeño y competitividad de los datos. Proporcionando mejores resultados al automatizar las tareas administrativas.

1. es decir que la información se almacena en equipos remotos y se puede acceder a ella a través de una red. 6 ..1. Cuando este programa está ejecutándose se dice que la base de datos está levantada (startup).1. en concordancia con los derechos de acceso que se les hayan otorgado.Partes principales de una Base de Datos Una base de datos proporciona a los usuarios el acceso a datos. en caso contrario se dice que la base de datos está bajada (shutdown). Ilustración 1. COMPONENTES DE UNA BASE DE DATOS Una base de datos consta de varios componentes: Motor: Programa ejecutable que debe estar en memoria para manejar la base de datos. "Sistema de información" es el término general utilizado para la estructura global que incluye todos los mecanismos para compartir datos que se han instalado. ingresar o actualizar. Diferentes programas y diferentes usuarios deben poder utilizar estos datos. (Kioskea.AUDITORIA EN BASE DE DATOS ORACLE 10G. BASE DE DATOS Una base de datos es una entidad en la cual se pueden almacenar datos de manera estructurada. 2011 CAPITULO I 1. INTRODUCCION A LA BASE DE DATOS 1. o puede ser distribuida. De allí el término base. es decir que puede utilizarla sólo un usuario en un equipo. Se convierte más útil a medida que la cantidad de datos almacenados crece. con la menor redundancia posible. Una base de datos puede ser local. que pueden visualizar. 2008) 1.

protección y elaboración de la información que almacena.1. (Progress) Relacionales. - 2011 - Servicio de red: Programa que se encarga de establecer las conexiones y transmitir datos entre cliente y servidor o entre servidores.1.AUDITORIA EN BASE DE DATOS ORACLE 10G. Access. Una base de datos que no tenga un listener cargado. Una base de datos es un programa residente en memoria. Sybase) (Wikilearning. Almacenamiento de datos. (Wikilearning. Paradox) Cliente/servidor (Oracle. Permitir la introducción de datos por parte de los usuarios (o programadores). Protección de datos (seguridad e integridad). Sybase…) Desde el punto de vista de la arquitectura y el número de usuarios: De escritorio (dBase. (Oracle.4.2. Listener (escuchador): Es un programa residente en memoria que se encarga de recibir las llamadas que llegan a la base de datos desde la red. Access. 2009) 1. demostrar. y de pasárselas a esta. 2009) 1. monitorear y registrar los accesos a la información almacenada en las bases de datos incluyendo la capacidad de determinar: 7 .1. Básicamente. la comunicación del usuario-programador con la base de datos se hace a través de un lenguaje denominado SQL: Structured Query Laguage (Lenguaje estructurado de consultas). asegurar.3. 2009) 1. que se encarga de gestionar todo el tratamiento de entrada. FUNCIONES DE LAS BASES DE DATOS. Salida de datos. AUDITORIA EN BASES DE DATOS Es el proceso que permite medir. TIPOS DE BASES DE DATOS. Elaboración de datos. Desde el punto de vista de la organización lógica se compone de: Jerárquicas. salida. no podrá recibir llamadas remotas. (Wikilearning.

- 8 . 2011 La optimización de la base de datos. donde en un lado de la red está el servidor con los datos y en el otro lado están los clientes que interrogan al servidor. física. BASE DE DATOS ORACLE Oracle es una base de datos relacional para entornos cliente/servidor. Cuál fue la sentencia SQL ejecutada.2. Los archivos de control que contienen la información necesaria para mantener y verificar la integridad de la base de datos.Componentes Principales de Una base de Datos. Una base de datos Oracle es utilizada con el fin de almacenar y recuperar la información relacionada.. Quién accede a los datos Cuándo se accedió a los datos. uniones. Ilustración 2. Los archivos redo log que contienen un registro de los cambios efectuados en la base de datos para activar la recuperación de los datos en caso de fallos. Posee tres tipos de archivos: Los archivos de datos que contienen los datos reales de la base de datos. que aplica las normas del álgebra relacional (conjuntos. Cuál fue el efecto del acceso a la base de datos. intersecciones) y que utiliza la arquitectura cliente/servidor. es decir. Desde qué ubicación en la red.AUDITORIA EN BASE DE DATOS ORACLE 10G. consta de una estructura lógica. Desde qué tipo de dispositivo/aplicación. 1. como ya hemos señalado. es fundamental. puesto que se actúa en un entorno concurrente puede degradarse fácilmente el nivel de servicio que haya podido establecerse con los usuarios.

El tipo de dato especifica el tipo de información que puede guardar un campo: caracteres.  CHAR . clúster. 1. 9 .Si se introduce una cadena de menos longitud que la definida se rellenara con blancos a la derecha hasta quedar completada.D.2. 2011 Las bases de datos Oracle ofrecen un extenso conjunto de funciones estándar SQL y PL/SQL para manipular números y realizar conversiones entre números y cadenas de caracteres.2.Almacena de 1 a 255.2. La estructura lógica está formada por los tablespace y los objetos de un esquema de BD. Cada tablespace se corresponde con uno o más ficheros de datos. etc. tiene uno o más ficheros de datos. En SQL tenemos bastantes sentencias que se pueden utilizar para realizar diversas tareas. Los datos del fichero de datos son leídos cuando se necesitan y situados en una caché de memoria compartida para que el próximo acceso a los mismos sea más rápido. 2011) 1. su estructura.AUDITORIA EN BASE DE DATOS ORACLE 10G. (iessanvicente. ESTRUCTURAS DE ORACLE Una BD Oracle tiene una estructura física y una estructura lógica: La estructura física se corresponde a los ficheros del sistema operativo. Cada BD estará formada por uno o más tablespaces. ya que a la hora de crear una tabla en una base de datos. Objetos: tablas.3. TIPOS DE DATOS EN ORACLE Es importante la declaración de tipos de datos a utilizar. Estos ficheros son de tamaño fijo y se Establecen en el momento en que se crea la base de datos o en el momento en el que se crean tablespaces. . números. debemos resolver qué campos (columnas) tendrá y que tipo de datos almacenará cada uno de ellos.1.1. vistas. Se divide en unidades de almacenamiento lógicas: Tablespaces. ESTRUCTURA FÍSICA Una B. . (slideshare. índices asociados a una tabla.1.1.Tienen una longitud fija. es decir. ESTRUCTURA LÓGICA 1.2. 2011) 1.

LONG .No almacena números de gran tamaño. - 2011 Si se introduce una cadena de mayor longitud que la fijada nos dará un error.Almacena cadenas de longitud variable.Sentencias de consultas de datos. Los usuarios de Oracle pueden definir sus propios tipos de datos mediante dos categorías: tipos de objetos (object type) y tipos para colecciones (collection type).AUDITORIA EN BASE DE DATOS ORACLE 10G. .  ROWID . nos dará un error. . .Se almacenan tanto enteros como decimales. (SQL con ORACLE.Si se introduce una cadena de menor longitud que la que está definida.Posición interna de cada una de las columnas de las tablas. se almacena con esa longitud y no se rellenara con blancos ni con ningún otro carácter a la derecha hasta completar la longitud definida.  VARCHAR . .Number (precisión. .Almacena la fecha. sino cadenas de caracteres de hasta 2 GB DATE . sonidos…) LONGRAW .Se almacena de la siguiente forma: Siglo/Año/Mes/Día/Hora/Minutos/Segundos RAW -     Almacena cadenas de Bytes (gráficos. escala). Para construir los tipos de usuario se utilizan los tipos básicos provistos por el sistema y otros tipos de usuario previamente definidos.Si se introduce una cadena de mayor longitud que la fijada.Como el anterior pero con mayor capacidad. 2005) 10 . NUMBER . .La longitud máxima es de 2000 caracteres. Un tipo de dato define una estructura y un comportamiento común para un conjunto de datos de las aplicaciones.

Scripts 2. Un tipo de objeto representa una entidad del mundo real y se compone de los siguientes elementos: Su nombre que sirve para identificar el tipo de los objetos. 2011 CAPITULO II 2. no un lenguaje de programación. bucles. se usa para describir una base de datos que ha evolucionado desde el modelo relacional hacia otra más amplia que incorpora conceptos del paradigma orientado a objetos. estás son: . PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los lenguajes de programación. INTRODUCCION SQL es un lenguaje de consulta para los sistemas de bases de datos relaciónales. y demás elementos característicos de la programación. Con PL/SQL se puede programar las unidades de programa de la base de datos ORACLE.Funciones . No permite el uso de variables.Procedimientos almacenados . Cuando se desea realizar una aplicación completa para el manejo de una base de datos relacional.1. Sus métodos (procedimientos o funciones) escritos en lenguaje PL/SQL (almacenados en la BDOR). estructuras de control de flujo. Sus atributos que modelan la estructura y los valores de los datos de ese tipo. No es de extrañar.AUDITORIA EN BASE DE DATOS ORACLE 10G. pero que no posee la potencia de los lenguajes de programación. SQL es un lenguaje de consulta. SQL es la herramienta ideal para trabajar con bases de datos. Cada atributo puede ser de un tipo de datos básico o de un tipo de usuario. PROGRAMACIÓN CON PL/SQL 2.2. TIPOS DE OBJETOS EN ORACLE El término Base de Datos Objeto Relacional (BDOR) utilizado por Oracle.Trigger . Sin embargo. (Base de Datos ORACLE PL-SQL) 11 . o escritos en C (almacenados externamente). resulta necesario utilizar alguna herramienta que soporte la capacidad de consulta del SQL y la versatilidad de los lenguajes de programación tradicionales.

2. símbolos.1. queda almacenado en la base de datos (por eso es también llamado 'Procedimiento almacenado') y puede ser utilizado por múltiples aplicaciones. y puede contener letras. constante. DROP). Los procedimientos tienen la utilidad de fomentar la reutilización de programas que se usan comúnmente. cursores. Una vez compilado. 2011) 2. != (distinto de) < (menor que) > (mayor que) >= (mayor o igual a) <= (menor o igual a) Operador de concatenación: - - || Comentarios: /* comentario de dos o más líneas */ -. DELETE. La sintaxis es la siguiente: CREATE [OR REPLACE] PROCEDURE nombre_procedimiento [nombre_parametro modo tipodatos_parametro ] IS | AS Bloque de código 12 . (Programacion PL-SQL . TIPOS DE OPERADORES Operador de asignación: := (dos puntos + igual) Operadores aritméticos: / (división) + (suma) . IDENTIFICADORES 2011 Un identificador es un nombre que se le pone a un objeto que interviene en un programa.AUDITORIA EN BASE DE DATOS ORACLE 10G. procedimientos. Debe tener un máximo de 30 caracteres que empiece siempre por una letra. mayúsculas y minúsculas indiferentemente.3. UPDATE. Los identificadores no pueden ser palabras reservadas (SELECT.comentario de una línea 2. excepciones. que pueden ser llamados usando el nombre que se le haya asignado.2. 2. PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL. INSERT.2.(resta) Operadores relacionales o de comparación: = (igual a) <>. números. que puede ser variable.

previamente habiendo inicializado el/los parámetro/s en caso que existan. Registro de las operaciones realizadas. 13 . Tipodatos_parametro. OUT indica que el parámetro es de salida con lo que el procedimiento devolverá un valor en él. Por defecto tiene el valor IN si no se pone nada. Operaciones de inserción. Para borrar un procedimiento almacenado de la base de datos: DROP PROCEDURE nombre_procedimiento   Para utilizar un procedimiento almacenado de la base de datos simplemente se lo llama desde un bloque anónimo (desde la línea de comandos). Se debe tener cuidado con este tipo de estructuras puesto que un uso excesivo puede dar lugar a dependencias difíciles de mantener. DECLARE nombre_parametro tipodatos_parametro. en cambio nos indica el tipo de datos que tendrá el parámetro según lo indicado en Tipos de datos Oracle/PLSQL.AUDITORIA EN BASE DE DATOS ORACLE 10G. TRIGGERS Un trigger o disparador se ejecuta ante un determinado evento de manera automática. OUT. END.  2011 Donde "modo" puede contener los valores IN. Los trigger permiten: Realizar comprobaciones a objeto de mantener la integridad de la base de datos. (Programacion PL-SQL. modificación o borrado de registros en paralelo a una operación. 2011) 2. Además se deben tener muy claros las restricciones de integridad para evitar problemas.4. nombre_procedimiento (nombre_parametro => nombre_parametro).  IN indica que el parámetro es de entrada y no se podrá modificar. Con lo que al llamar al procedimiento se le dará un valor que luego podrá ser modificado por el procedimiento y devolver este nuevo valor. IN OUT. Generalmente se utilizan para garantizar que una determinada acción siempre se realiza después de realizar una tarea determinada. IN OUT indica que el parámetro es de entrada/salida. BEGIN nombre_parametro tipodatos_parametro:= valor_de_inicializacion.

puede contener los valores BEFORE o AFTER. UPDATE o DELETE. [REFERENCING OLD AS old | NEW AS new] FOR EACH ROW    "old" indica el nombre que se le da al registro con los valores antiguos que se tenían antes de la ejecución de la operación que activó el trigger.AUDITORIA EN BASE DE DATOS ORACLE 10G. Mientras que "new" indica el valor que tiene actualmente después de dicha operación.  A nivel de sentencia: - 2011 CREATE [OR REPLACE] TRIGGER nombre_trigger momento_ejecución evento [evento] ON nombre_tabla bloque PLSQL. Para eliminar un trigger: DROP TRIGGER nombre_trigger (Programacion PL-SQL. La cláusula "FOR EACH ROW" indica que el trigger es a nivel de registro. Por ejemplo se puede indicar que el trigger se ejecute solo si el campo "campo1" de la tabla tiene un valor mayor que 50.  A nivel de registro CREATE [OR REPLACE] TRIGGER nombre_trigger momento_ejecución evento [evento] ON nombre_tabla   Donde "momento_ejecución" indica cuando se ejecuta el trigger automáticamente. Con la cláusula "WHEN" se puede indicar una restricción que haga que el trigger se ejecute o no. "evento" indica la operación que provoca la ejecución de este bloque. [WHEN condición] Bloque PLSQL. 2011) 14 . puede contener los valores INSERT.

 Crearemos un nuevo usuario en Oracle10g para guardar nuestras tablas y crear los diferentes objetos que necesitamos para la auditoria de dicho esquema. Ilustración 3. para luego conectarnos de forma remota a dicho servidor.  Como primer punto levantamos los servicios del servidor de base de datos Oracle 10g. 15 .1.. SERVICIOS DE ORACLE. DESARROLLO 3. CREACIÓN DE USUARIO EN ORACLE10G.Levantar Servicios de Oracle10g 3.AUDITORIA EN BASE DE DATOS ORACLE 10G. 2011 CAPITULO III 3.2.

Nuevo Usuario  Le daremos los respectivos privilegios y roles para poder crear los objetos de la base de datos Ilustración 5. 2011 Ilustración 4.AUDITORIA EN BASE DE DATOS ORACLE 10G.-Roles del Sistema 16 ..-Privilegios del Sistema Ilustración 6.

6.AUDITORIA EN BASE DE DATOS ORACLE 10G. 3.  2011 El modelo de la base de datos lo hemos creado con la aplicación Toad Data Modeler 3. 17 . Foreign Key y sus relaciones.3. para luego generar el script del modelo y así ejecutarlo en el isqlplus del oracle10g obteniendo las tablas con sus respectivas Primary Key. MODELO DE LA BASE DE DATOS.

AUDITORIA EN BASE DE DATOS ORACLE 10G. 2011 Ilustración 7.-Modelo de Base de Datos 18 .

Iniciar Sesión Ilustración 9.Cargar el script en el Isqlplus. que generamos en el Toad Data Modeler 3. 19 .6. Ilustración 8... en el isqlplus con el usuario creado anteriormente. Ejecutamos el Script.

Usuario Objetos Creados 3. DISPARADORES Y PROCEDIMIENTOS ALMACENADOS EN ORACLE SQLDEVELOPER. o el PL/SQL Developer) para desarrollar.AUDITORIA EN BASE DE DATOS ORACLE 10G. o simplemente para ejecutar consultas o scripts SQL. tanto DML como DDL.Oracle Sqldeveloper 20 . CREACIÓN DE SECUENCIAS.  Oracle SQL Developer es la herramienta gráfica gratuita que proporciona Oracle para que no sea necesario utilizar herramientas de terceros (como el conocido TOAD. 2011 Ilustración 10. sobre bases de datos Oracle.4... Ilustración 11.

Ilustración 12.Secuencia del IDUSER 21 . (Ver Código Anexo1). 2011  En la siguiente ventana realizaremos la conexión a la base de datos.AUDITORIA EN BASE DE DATOS ORACLE 10G. una para que en la tabla usuarios aumente de 1 en 1 el iduser y la otra en la tabla de auditoría. para ello agregaremos los campos necesarios para establecer la conexión. ejecutamos dos Secuencia.. Ilustración 13..Conexión a oracle  Como primer punto en la creación de los objetos.

2011 Ilustración 14.. Ilustración 15.Trigger LOGOFF 22 .Secuencia ID  Crearemos un disparador para escribir un registro a una tabla de USUARIOS cada vez que un usuario inicia sesión y también cuando cierre sesión. los demás disparadores (Ver Código Anexo2).AUDITORIA EN BASE DE DATOS ORACLE 10G..

"VALORORIGINAL" VARCHAR2(40 BYTE). "TIPO" VARCHAR2(30 BYTE) )  Los Procedimientos almacenados crearemos para validar cuando un campo es modificado por otro y a su vez para cuando el usuario inserta. se debe crear una tabla en donde se va a guardar los cambios de las tablas. (Ver Código Anexo3)."AUDITORIA" ( "ID" NUMBER(4.0). luego crearemos los procedimientos que utilizaremos: CREATE TABLE "JVARGAS". 2011 Ilustración 16. actualiza y elimina un registro de cualquier tabla dicha información se guardara en la tabla AUDITORIA. sobre la cual el trigger escribirá el detalle de las transacciones realizadas. "VALORNUEVO" VARCHAR2(40 BYTE). Lo primero que hay que hacer es crear la tabla auditoria. "TABLA" VARCHAR2(40 BYTE). 23 .AUDITORIA EN BASE DE DATOS ORACLE 10G.Trigger LOGON  Para crear un trigger para auditar cambios en una tabla.. "CAMPO" VARCHAR2(40 BYTE). "USUARIOS" VARCHAR2(40 BYTE). "FECHA" VARCHAR2(40 BYTE).

'RODRIGUEZ'.  INSERT INTO "JVARGAS". INSERTAR UN REGISTRO EN LA TABLA CLIENTE. NOMBRE_CED.5..1. 2011 Ilustración 17. DEMOSTRACIÓN 3.Procedimiento Guardar 3. 'JORGE '."CLIENTES" (CEDULA. 'MACHALA'. CIUDAD_CED..Procedimiento Validar Ilustración 18.AUDITORIA EN BASE DE DATOS ORACLE 10G. '6 ESQUINAS') 24 . APELLIDO_CED.5. DIRECCION_CED) VALUES ('0758962315'.

Hagamos una segunda prueba.AUDITORIA EN BASE DE DATOS ORACLE 10G. ELIMINAR UN REGISTRO EN LA TABLA CLIENTE  DELETE FROM "JVARGAS"."CLIENTES" SET NOMBRE_CED = 'JUAN PEDRO'. 2011  Obsérvese que en la tabla de auditoría se han creado un registro por cada campo del registro que se ha insertado en la tabla Cliente. ya que se actualizó 3 campos de la tabla Cliente. 3. CIUDAD_CED = 'MACHALA' WHERE ROWID = 'AAAM1vAAEAAAAJvAAD' AND ORA_ROWSCN = '1393349'  Obsérvese que se ha ingresado 3 registros en la tabla de auditoría. ACTUALIZAR UN REGISTRO EN LA TABLA CLIENTE.5. El tipo de transacción es U de Updated y los campos ValorOriginal y ValorNuevo si tienen datos reflejando el antes y el después de la actualización.5.2. 3."CLIENTES" WHERE ROWID = 'AAAM1vAAEAAAAJvAAD' AND ORA_ROWSCN = '1449634' and ( "CEDULA" is null or "CEDULA" is not null ) 25 . El tipo de transacción es de Insert y el campo Valor Original es nulo porque este es un nuevo registro. APELLIDO_CED = 'PEREZ IBARRA'.3.  UPDATE "JVARGAS".

AUDITORIA EN BASE DE DATOS ORACLE 10G. 26 . El tipo de transacción es D de Deleted y el campo ValorNuevo es nulo porque el registro se ha borrado. solo registra el valor original. 2011  Aquí aparece un registro por cada campo del registro eliminado de la tabla Cliente.

y llevar un registro que contenga todos los lineamientos para el ingreso y acceso de un usuario. Oracle Database 10g ha evolucionado con el tiempo. que es donde se va almacenar toda la información ingresada por el usuario. sin sacrificar la facilidad de uso y la seguridad de la información. por lo que se debe llevar una auditoria en la base de datos. 2011 4. por lo que nos permite mejorar el desempeño. la escalabilidad y la capacidad en el manejo del servidor de base de datos. aprovechando al máximo los servicios y características del sistema operativo en el que es instalado.AUDITORIA EN BASE DE DATOS ORACLE 10G. y la correcta utilización de procedimientos almacenados. Para poder hacer uso de todos los recursos que ofrece una base de datos en Oracle es importante establecer una auditoría. CONCLUSIONES - Ofrecer seguridad en los datos es importante. el buen manejo de trigger. - - - 27 . Finalmente hemos concluido que Oracle Database 10g brinda flexibilidad para los usuarios que elijan trabajar con este gestor.

net/RMCA/administracion-de-base-de-datos-oracle http://www..php http://www.es/~chernan/Bases/Teoria/TySQL.desarrolloweb. BIBLIOGRAFÍA    http://es.pdf http://www.net/pajaro5/introduccin-a-base-de-datos-oracle6589981 http://www.slideshare.net/contents/bdd/bddintro. 2011 5.es/docencia/grado/curso0506/BDOR%20en%20Oracle.com/curso_gratis/iniciacion_a_oracle       http://www.wikilearning.AUDITORIA EN BASE DE DATOS ORACLE 10G.com/curso_gratis/iniciacion_a_oracle/3861-3 introduccion_a_las_bases_de_datos/3861-2  http://www.doc http://sinbad.pdf oasis.iessanvicente..geocities.ws/cacuestaa/matdoc/misapu/triggers/index.wikilearning.org/.php3 http://www.cisc-ug.infor./QUINTO/Programación%20con%20PL-SQL.slideshare.com/colaboraciones/oracle.com/articulos/1869.kioskea.pdf 28 .dit.uva.html http://www.upm.

 TRIGGERS LOGOFF create or replace TRIGGER USER_LOGOFF_TRG BEFORE LOGOFF ON JVARGAS. ANEXOS ANEXO 1  USUARIO SECUENCIA CREATE SEQUENCE "JVARGAS". INSERT INTO USUARIOS VALUES (n.  TRIIGGERS LOGON  29 . AUDITORIA SECUENCIA CREATE SEQUENCE "JVARGAS". END IF.(select user from dual)."USU_AUDI_SECUENCIA" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 35 NOCACHE NOORDER NOCYCLE.'DD/MM/YYYY HH24:MI:SS')). 2011 6. BEGIN SELECT USU_AUDI_SECUENCIA.SCHEMA declare n varchar2(20).AUDITORIA EN BASE DE DATOS ORACLE 10G. END. END COLUMN_SEQUENCES.'Log OF'.NEXTVAL INTO :NEW.TO_CHAR(SYSDATE.IDUSER FROM DUAL.NEXTVAL INTO n FROM DUAL.IDUSER IS NULL THEN SELECT USU_AUDI_SECUENCIA. END."ID_AUDITORIA_SECUENCIA" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 24 NOCACHE NOORDER NOCYCLE. ANEXO 2  TRIGGERS USUARIO create or replace TRIGGER USUARIOS_TRG BEFORE INSERT ON USUARIOS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.

"COD_CIU_PROV"). proc_validar('PROVEEDORES'.  TRIGGERS INVENTARIO create or replace TRIGGER INVENTARIO_AUDI_DISP BEFORE INSERT OR DELETE OR UPDATE ON INVENTARIO FOR EACH ROW BEGIN proc_validar('INVENTARIO'. 2011 create or replace TRIGGER USER_AUDI_TRG AFTER LOGON ON JVARGAS.(select user from dual).:NEW.:OL D. proc_validar('PROVEEDORES'."TELF_PROV".'DD/MM/YYYY HH24:MI:SS')).:NEW.:NEW. proc_validar('PROVEEDORES'.'COD_CIU_PROV'.'DIR_PROV'.:NEW.  TRIGGERS PROVEEDORES create or replace TRIGGER PROVEEDORES_AUDI_DSP BEFORE INSERT OR DELETE OR UPDATE ON PROVEEDORES FOR EACH ROW BEGIN proc_validar('PROVEEDORES'.NEXTVAL INTO n FROM DUAL. BEGIN SELECT USU_AUDI_SECUENCIA.TO_CHAR(SYSDATE.:OLD.'RUC_PROV'."DIR_PROV". proc_validar('PROVEEDORES'."COD _INV")." DIR_PROV")."TELF_PROV").:OLD."NOMBRE_P ROV"."NOMBRE_PROV"). END.:NEW.AUDITORIA EN BASE DE DATOS ORACLE 10G.'Log ON'.'COD_INV'. END.:OLD."COD_INV".'TELF_PROV'.SCHEMA declare n varchar2(20).'NOMBRE_PROV'.:NEW. INSERT INTO USUARIOS VALUES (n."COD_CIU_P ROV"."RUC_PROV".:OL D.:OLD."RUC_PROV"). 30 .

2011 proc_validar('INVENTARIO'.:NEW."FECHA_COMP").: OLD.'FECHA_COMP'."PCOMPRA_INV"."NOM_INV".:OLD."STOCK_INV". proc_validar('INVENTARIO'."FECHA_FACT".'NRO_FACT'." STOCK_INV")."NRO _FACT").'NOM_INV'."FECHA_COMP".AUDITORIA EN BASE DE DATOS ORACLE 10G." FECHA_FACT").'PCOMPRA_INV'."PCOMPRA_INV")."CED_CLI_FACT".:NEW. END.'NRO_COMP'."NOM _INV"). 31 .:OLD .:O LD.  TRIGGERS COMPRA create or replace TRIGGER COMPRA_AUDI_DSP BEFORE INSERT OR DELETE OR UPDATE ON COMPRA FOR EACH ROW BEGIN proc_validar('COMPRA'. proc_validar('FACTURA'."NR O_COMP")."G ANANCIA"). END.:OLD.:NEW.'GANANCIA'.'CED_CLI_FACT'.:OLD. proc_validar('INVENTARIO'.:NEW."NRO_COMP"."NRO_FACT".'FECHA_FACT'.'STOCK_INV'.  TRIGGERS FACTURA create or replace TRIGGER FACTURA_AUDI_DISP BEFORE INSERT OR DELETE OR UPDATE ON FACTURA FOR EACH ROW BEGIN proc_validar('FACTURA'.:OLD."GANANCIA". proc_validar('INVENTARIO'. proc_validar('FACTURA'.:NEW.:OLD.:NEW.:NEW."CED_CLI_FACT").:NEW.:NEW.:OLD. proc_validar('COMPRA'.

"APELLIDO_CED".'COD_CIU'. proc_validar('CLIENTES'."APELLIDO_CED").:O LD.:NEW. END. 32 ."NOM_CIU"."COD_CIU "). proc_validar('CLIENTES'. proc_validar('CLIENTES'.AUDITORIA EN BASE DE DATOS ORACLE 10G.:OLD.: OLD. proc_validar('CIUDAD'.  TRIGGERS CIUDAD create or replace TRIGGER CIU_AUDI_DSP BEFORE INSERT OR DELETE OR UPDATE ON CIUDAD FOR EACH ROW BEGIN proc_validar('CIUDAD'.:OLD. proc_validar('CLIENTES'."CIUDAD_CED". END.'DIRECCION_CED'.:NEW.'CEDULA'. proc_validar('COMPRA'.:NEW.  TRIGGERS CLIENTE create or replace TRIGGER CLIE_AUDI_DISP BEFORE INSERT OR UPDATE OR DELETE ON CLIENTES FOR EACH ROW BEGIN proc_validar('CLIENTES'."NOMBRE_CED")."NOM_CI U").:NEW.'REFERENCIA'."CEDULA ").'NOM_CIU'.:OLD.:NEW.:NEW.:NEW."REFERENCIA"."COD_CIU".'NOMBRE_CED'."NOMBRE_CED".'RUC_PROV_COMP'.'APELLIDO_CED'.:OLD.:NEW. 2011 proc_validar('COMPRA'."RUC_PROV_COMP")."RUC_PROV_COM P"." REFERENCIA").:OLD. END."CEDULA"."DIRECCION_CED").:OLD .:OLD."CIUDAD_CED").'CIUDAD_CED'.:NEW."DIRECCION_CE D".

END. 33 .0). "VALORNUEVO" VARCHAR2(40 BYTE).  TABLA CIUDAD DDL for Table CIUDAD CREATE TABLE "JVARGAS".NEXTVAL INTO :NEW. END COLUMN_SEQUENCES.0). "TIPO" VARCHAR2(30 BYTE) ) TABLESPACE "USERS" .ID FROM DUAL."CIUDAD" ("COD_CIU" NUMBER(4.  TABLA CLIENTES DDL for Table CLIENTES CREATE TABLE "JVARGAS"."CLIENTES" ("CEDULA" NUMBER(10. END IF. "FECHA" VARCHAR2(40 BYTE).AUDITORIA EN BASE DE DATOS ORACLE 10G. "VALORORIGINAL" VARCHAR2(40 BYTE).0).ID IS NULL THEN SELECT ID_AUDITORIA_SECUENCIA. "NOM_CIU" VARCHAR2(50 BYTE) ) TABLESPACE "USERS" . "USUARIOS" VARCHAR2(40 BYTE). "CAMPO" VARCHAR2(40 BYTE). "TABLA" VARCHAR2(40 BYTE). 2011  TRIGGERS IDAUDITORIA create or replace TRIGGER AUDITORIA_CLIE_TRG BEFORE INSERT ON AUDITORIA FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW."AUDITORIA" ("ID" NUMBER(4. ANEXO 3  TABLA DE AUDITORIA DDL for Table AUDITORIA CREATE TABLE "JVARGAS".

"FECHA_COMP" VARCHAR2(40 BYTE). "STOCK_INV" NUMBER. 2011 "NOMBRE_CED" VARCHAR2(40 BYTE). "DIRECCION_CED" VARCHAR2(40 BYTE) ) TABLESPACE "USERS" .  TABLA DET_COMP_INV DDL for Table DET_COMP_INV CREATE TABLE "JVARGAS". "RUC_PROV_COMP" NUMBER(13.  TABLA PROVEEDORES DDL for Table PROVEEDORES CREATE TABLE "JVARGAS"."COMPRA" ("NRO_COMP" NUMBER(4."DET_COMP_INV" 34 . "COD_CIU_PROV" NUMBER(4.0). "TELF_PROV" VARCHAR2(30 BYTE).AUDITORIA EN BASE DE DATOS ORACLE 10G. "REFERENCIA" VARCHAR2(40 BYTE).0). "GANANCIA" FLOAT(126) ) TABLESPACE "USERS" .  TABLA COMPRA DDL for Table COMPRA CREATE TABLE "JVARGAS"."PROVEEDORES" ("RUC_PROV" NUMBER(13. "NOMBRE_PROV" VARCHAR2(100 BYTE). "CIUDAD_CED" VARCHAR2(30 BYTE). "NOM_INV" VARCHAR2(40 BYTE). "APELLIDO_CED" VARCHAR2(40 BYTE).  TABLA INVENTARIO DDL for Table INVENTARIO CREATE TABLE "JVARGAS". "PCOMPRA_INV" FLOAT(126)."INVENTARIO" ("COD_INV" NUMBER(4. "DIR_PROV" VARCHAR2(50 BYTE).0) ) TABLESPACE "USERS" .0) ) TABLESPACE "USERS" .0).

  TABLA USUARIOS DDL for Table USUARIOS CREATE TABLE "JVARGAS". "PRECIO_DET" FLOAT(126). "CANTIDAD_DET" NUMBER. "FECHA" VARCHAR2(40 BYTE) ) TABLESPACE "USERS" .  TABLA FACTURA DDL for Table FACTURA CREATE TABLE "JVARGAS". "DETALLE_DET" VARCHAR2(50 BYTE).AUDITORIA EN BASE DE DATOS ORACLE 10G. "ACTIVIDAD" VARCHAR2(30 BYTE)."FACTURA" ("NRO_FACT" NUMBER(4.AUDITORIA 35 .  INSERTAR REGISTROS EN LAS TABLAS REM INSERTING into JVARGAS.0) ) TABLESPACE "USERS" . "USER_NOMBRE" VARCHAR2(30 BYTE).0)."USUARIOS" ("IDUSER" VARCHAR2(20 BYTE). "COD_INV" NUMBER(4.   TABLA DET_FACT_INV DDL for Table DET_FACT_INV CREATE TABLE "JVARGAS".AUDITORIA Insert into JVARGAS. "COD_INV" NUMBER(4. "FECHA_FACT" VARCHAR2(40 BYTE). "PUNITARIO" FLOAT(126). 2011 ("NRO_COMP" NUMBER(4. "TOTAL_DET" FLOAT(126) ) TABLESPACE "USERS" .0).0). "TOTAL" FLOAT(126) ) TABLESPACE "USERS" . "CANTIDAD" NUMBER."DET_FACT_INV" ("NRO_FACT" NUMBER(4.0). "CED_CLI_FACT" NUMBER(10.0). "DETALLE" VARCHAR2(50 BYTE).

TIPO)values(5.USUA RIOS.VALORORIGINAL.'UPDATE').CIUDAD (COD_CIU.TABLA.TABLA.USUA RIOS.TABLA.AUDITORIA (ID. Insert into JVARGAS. Insert into JVARGAS.AUDITORIA (ID.CIUDAD (1.NOM_CIU) values (COD_CIU.'STOCK_INV'.TIPO)values(4.CAMPO.CIUDAD (4.'PROVEEDORES'.FECHA.' TRIONICA S. 2011 (ID.'NOM_CIU'.'###########'.'7'.CAMPO.VALORNUEVO.'UPDATE').VALORORIGINAL.TIPO)values(3.VALORORIGINAL.A'.'5'.CAMPO.'JVARGAS'. Insert into JVARGAS.'21/12/2011 23:20:32'.NOM_CIU) values 36 .'##### ########'.'INSERT').'25/12/2011'.TABLA.'21/12/2011 23:23:06'.'COD_CIU'.'RIOBAMBA'.'JVARGAS'. (COD_CIU.AUDITORIA (ID. Insert into JVARGAS.'FECHA_FACT'. Insert into JVARGAS.VALORNUEVO.'JVARGAS'. Insert into JVARGAS. JVARGAS.VALORNUEVO.FECHA.'BABAHOYOS').'JVARGAS'.CAMPO.VALORORIGINAL.VALORORIGINAL.USUA RIOS.CAMPO.'JVARGAS'.TIPO)values(2.'21/12/2011 23:09:14'.FECHA.'INVENTARIO'.VALORNUEVO.'REFERENCIA'.'FACTURA'.'TRIONICA'.'MACHALA').'CUENCA').FECHA.'NOMBRE_PROV'.TABLA.NOM_CIU) values (COD_CIU.USUA RIOS.AUDITORIA (ID. Insert into JVARGAS.AUDITORIA EN BASE DE DATOS ORACLE 10G. REM INSERTING into JVARGAS.FECHA.CIUDAD (6.VALORNUEVO.VALORNUEVO.'INSERT').'21/12/ 2011 23:23:06'.VALORORIGINAL.'CIUDAD'.TABLA.CAMPO.'21/12/2011 23:14:02'.null.'GUAYAQUIL'). Insert into (3.'UPDATE').USUA RIOS.'COMPRA'.TIPO)values(6.NOM_CIU) values (COD_CIU.NOM_CIU) values Insert into JVARGAS.USUA RIOS.'UPDATE').AUDITORIA (ID.'21/12/2011 23:01:50'.FECHA.CIUDAD Insert into JVARGAS.'JVARGAS'.'27/12 /2011'.CIUDAD (2.'10'.'QUITO').TIPO)values(1.null.'CIUDAD'.

'10 DE AGOSTO Y BUENAVISTA').NOMBRE_CED.DIRECCIO N_CED) values (704582576.'ERREYES'.REFERENCIA.APELLIDO_CED.'MACHALA'.CIUDAD_CED.APELLIDO_CED.702414547001).'LEONARDO '.DIRECCIO N_CED) values (704464445.CLIENTES (CEDULA.'###########'.REFERENCIA.'#############'.COMPRA (NRO_COMP.NOMBRE_CED.DET_COMP_INV 37 .APELLIDO_CED.NOMBRE_CED.DIRECCIO N_CED) values (704127487.'ERREYES'.'MACHALA'.'###########'.CIUDAD_CED. Insert into JVARGAS.704464445001).'PEREZ'.'LOS "VERGELES"').DET_COMP_INV Insert into JVARGAS.'RIOBAMBA').'LA FLORIDA SECTOR 4').'MANUEL '.CIUDAD_CED.'21/12/2011'.RUC_PROV_COMP) values (3.COMPRA (NRO_COMP.CLIENTES (CEDULA.'PASAJE'.704582576001).'JUAN'. Insert into JVARGAS.APELLIDO_CED.'NATALI'.CLIENTES (CEDULA. Insert into JVARGAS.NOM_CIU) values REM INSERTING into JVARGAS.NOMBRE_CED.NOMBRE_CED.DIRECCIO N_CED) values (704123069.'JAIME'.'BARRIO "ABDON CALDERON"').RUC_PROV_COMP) values (1.FECHA_COMP.CIUDAD_CED.FECHA_COMP. (COD_CIU.COMPRA Insert into JVARGAS. REM INSERTING into JVARGAS. Insert into JVARGAS.FECHA_COMP.RUC_PROV_COMP) values (2.DIRECCIO N_CED) values (702490616. 2011 Insert into JVARGAS.'RUIZ'.CLIENTES Insert into JVARGAS.'22/12/2011'.'MACHALA'.APELLIDO_CED. Insert into JVARGAS.'PASAJE'.'21/12/2011'.CLIENTES (CEDULA.'VARGAS'.COMPRA (NRO_COMP.CLIENTES (CEDULA. REM INSERTING into JVARGAS.'LOS VERGELES'). Insert into JVARGAS.CIUDAD_CED.CIUDAD (7.AUDITORIA EN BASE DE DATOS ORACLE 10G.REFERENCIA.

REM INSERTING into JVARGAS.25.1.80.DETALLE.FACTURA (NRO_FACT.DET_FACT_INV (NRO_FACT.1.DETALLE.45).null.1.1. Insert into JVARGAS.TOTAL) values (1.FACTURA (NRO_FACT.CANTIDAD.2.DET_COMP_INV (NRO_COMP.PUNITARIO. REM INSERTING into JVARGAS.CANTIDAD.DET_FACT_INV Insert into JVARGAS.80).DETALLE_DET.TOTAL_DET) values (1.DET_COMP_INV (NRO_COMP.COD_INV.DETALLE_DET.10.2. Insert into JVARGAS.CANTIDAD_DET.30.10.'SOUND'.PRECIO_D ET.10).COD_INV.5.DETALLE_DET.TOTAL_DET) values (2.TOTAL) values (2.2..2.'OPTICO'.45. 38 .TOTAL) values (2.AUDITORIA EN BASE DE DATOS ORACLE 10G.DETALLE.CANTIDAD_DET.704464445).CANTIDAD_DET.1.null.CANTIDAD.PUNITARIO.2.TOTAL) values (3.2.PRECIO_D ET.PUNITARIO.PRECIO_D ET. Insert into JVARGAS.DET_FACT_INV (NRO_FACT.COD_INV.FACTURA Insert into JVARGAS. 2011 (NRO_COMP.DET_COMP_INV (NRO_COMP.DETALLE.COD_INV.CANTIDAD.'.CANTIDAD.1.COD_INV.CED_CLI_FACT) values (1.PUNITARIO.1.TOTAL) values (4.PRECIO_D ET.TOTAL_DET) values (3.COD_INV.COD_INV.'24 V.25).4.DET_FACT_INV (NRO_FACT.25.2. Insert into JVARGAS.3.COD_INV.TOTAL_DET) values (1.DET_FACT_INV (NRO_FACT. Insert into JVARGAS.DETALLE_DET.50). Insert into JVARGAS.null.'SOUND '.FECHA_FACT.'22/12/2011'.null.PUNITARIO.30.DET_FACT_INV (NRO_FACT.'21/12/2011'. Insert into JVARGAS.50.30).20).704582576). Insert into JVARGAS.1.30).50).null.COD_INV.FECHA_FACT.CANTIDAD_DET.DETALLE.CED_CLI_FACT) values (2.

STOCK_INV.FACTURA (NRO_FACT.STOCK_INV.3.8.0 8GB'.GANANCIA) values (5. Insert into JVARGAS.NOM_INV. Insert into JVARGAS.'REGULADOR DE VOLTAJE'.NOM_INV. Insert into JVARGAS.STOCK_INV. 2011 Insert into JVARGAS.INVENTARIO Insert into JVARGAS.GANANCIA) values (2. Insert into JVARGAS.'PARLANTES'.PCOMPRA_INV.INVENTARIO (COD_INV.FECHA_FACT.PCOMPRA_INV.120.NOM_INV.45).PCOMPRA_INV.INVENTARIO 39 . Insert into JVARGAS. Insert into JVARGAS.STOCK_INV.INVENTARIO (COD_INV.AUDITORIA EN BASE DE DATOS ORACLE 10G.3.15).GANANCIA) values (8.'MOUSE'.PCOMPRA_INV.9.GANANCIA) values (7.50). Insert into JVARGAS.INVENTARIO (COD_INV.NOM_INV.INVENTARIO (COD_INV.30.10.PCOMPRA_INV.40.CED_CLI_FACT) values (4.STOCK_INV.25.'IMPRESORA EPSON MULTIFUNCION'.NOM_INV.INVENTARIO (COD_INV.'MEMORIA DDR2 2GB'.INVENTARIO (COD_INV.FECHA_FACT.INVENTARIO (COD_INV.PCOMPRA_INV.GANANCIA) values (9.45.PCOMPRA_INV.'DISCO DURO 500GB'.NOM_INV.PCOMPRA_INV.FACTURA (NRO_FACT.4.30).NOM_INV.8).PCOMPRA_INV. Insert into JVARGAS.INVENTARIO (COD_INV.3.7.150.2.5.'USB 2.GANANCIA) values (6.'PANTALLA LCD ''15'. REM INSERTING into JVARGAS.5).STOCK_INV.GANANCIA) values (4.25).STOCK_INV. Insert into JVARGAS.702490616).75.CED_CLI_FACT) values (3. Insert into JVARGAS.GANANCIA) values (3.STOCK_INV.'23/12/2011'.INVENTARIO (COD_INV.6.80.STOCK_INV.12).GANANCIA) values (1.6).NOM_INV.'LECTOR BLU-RAY'.702490616).'27/12/2011'.NOM_INV.

1).FECHA) values('1'.NOM_INV.PROVEEDORES (RUC_PROV.'2874125'.USER_NOMBRE.'2841254'.ACTIVIDAD.'SOLO HP '.'2741258'.USUARIOS (IDUSER. Insert into JVARGAS.PROVEEDORES (RUC_PROV. REM INSERTING into JVARGAS.1). 25 DE JUNIO / COLON Y TARQUI'.NOMBRE_PROV.A'.NOMBRE_PROV.'MARCIMEX S.USUARIOS 40 .AUDITORIA EN BASE DE DATOS ORACLE 10G. Insert into JVARGAS.A'.DIR_PROV.COD_CIU_PR OV) values (702315984001.'AV.NOMBRE_PROV.NOMBRE_PROV.PROVEEDORES (RUC_PROV. REM INSERTING into JVARGAS.TELF_PROV. Insert into JVARGAS. Insert into JVARGAS.'AUDIFONOS'.COD_CIU_PR OV) values (705478945001.DIR_PROV.'2987451'.2).'TRIONICA S. Insert into JVARGAS.STOCK_INV.NOMBRE_PROV.PROVEEDORES Insert into JVARGAS.DIR_PROV. 2011 (COD_INV. MACHALA Y PEDRO MONCAYO'.'2262784'.COD_CIU_PR OV) values (704582576001.'IMPACAR S.TELF_PROV.USUARIOS Insert into JVARGAS.PROVEEDORES (RUC_PROV. ROSENDO / PAEZ'.'AV.'JVARGAS'.TELF_PROV.'21/12/2011 03:16:02').3).28.GANANCIA) values (10.'CYBERTRONIC S. ROCAFUERTE / COLO Y TARQUI'.'JVARGAS'.6).COD_CIU_PR OV) values (704464445001.TELF_PROV. Insert into JVARGAS.DIR_PROV.DIR_PROV.ACTIVIDAD.'2974102'.'INTERMAX S.NOMBRE_PROV.COD_CIU_PR OV) values (702490616001.PROVEEDORES (RUC_PROV.'AV.FECHA) values('2'. SOLANO Y REMIGIO CRESPO'.'AV.TELF_PROV.COD_CIU_PR OV) values (702414547001. AMERICA'.PROVEEDORES (RUC_PROV.TELF_PROV. Insert into JVARGAS.'21/12/2011 03:53:40').8).A'.DIR_PROV.'Log ON'.A'.USER_NOMBRE.PCOMPRA_INV.4).5.USUARIOS (IDUSER.'AV.'AV.A'.'Log ON'.

2011 (IDUSER.FECHA) values('3'.  DDL for Index KEY_CIUDAD CREATE UNIQUE INDEX "JVARGAS"."CIUDAD" ("COD_CIU") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" .ACTIVIDAD.USER_NOMBRE.AUDITORIA EN BASE DE DATOS ORACLE 10G.'Log OF'.  DDL for Index AUDITORIA_CLIE_PK CREATE UNIQUE INDEX "JVARGAS".'21/12/2011 20:01:29')."AUDITORIA" ("ID") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" .'JVARGAS'."KEY_CLIENTES" ON "JVARGAS".  DDL for Index KEY_COMPRA CREATE UNIQUE INDEX "JVARGAS"."CLIENTES" ("CEDULA") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" . DDL for Index KEY_DET_COMP_INV  41 ."KEY_COMPRA" ON "JVARGAS"."AUDITORIA_CLIE_PK" ON "JVARGAS".  DDL for Index KEY_CLIENTES CREATE UNIQUE INDEX "JVARGAS"."COMPRA" ("NRO_COMP") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ."KEY_CIUDAD" ON "JVARGAS".

 DDL for Index KEY_INVENTARIO CREATE UNIQUE INDEX "JVARGAS"."FACTURA" ("NRO_FACT") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" .  DDL for Index KEY_DETALLE_FACT_INV CREATE UNIQUE INDEX "JVARGAS"."KEY_DETALLE_FACT_INV" ON "JVARGAS".  DDL for Index KEY_PROVEE CREATE UNIQUE INDEX "JVARGAS". 2011 CREATE UNIQUE INDEX "JVARGAS"."KEY_INVENTARIO" ON "JVARGAS"."KEY_PROVEE" "JVARGAS"."DET_FACT_INV" ("NRO_FACT".  DDL for Index KEY_FACTURA CREATE UNIQUE INDEX "JVARGAS"."DET_COMP_INV" ("NRO_COMP"."KEY_DET_COMP_INV" ON "JVARGAS"."KEY_FACTURA" ON "JVARGAS". "COD_INV") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ."INVENTARIO" ("COD_INV") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" .AUDITORIA EN BASE DE DATOS ORACLE 10G. "COD_INV") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ."PROVEEDORES" ("RUC_PROV") ON 42 .

43 . ALTER TABLE "JVARGAS". 2011 PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" .  Constraints for Table AUDITORIA ALTER TABLE "JVARGAS". ALTER TABLE "JVARGAS".  DDL for Index USUARIOS_PK CREATE UNIQUE INDEX "JVARGAS"."USUARIOS_PK" ON "JVARGAS"."AUDITORIA" ADD CONSTRAINT "AUDITORIA_CLIE_PK" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE."AUDITORIA" MODIFY ("ID" NOT NULL ENABLE).  Constraints for Table CIUDAD ALTER TABLE "JVARGAS"."USUARIOS" ("IDUSER") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ."CIUDAD" MODIFY ("COD_CIU" NOT NULL ENABLE).AUDITORIA EN BASE DE DATOS ORACLE 10G."CIUDAD" ADD CONSTRAINT "KEY_CIUDAD" PRIMARY KEY ("COD_CIU") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE.

AUDITORIA EN BASE DE DATOS ORACLE 10G."COMPRA" ADD CONSTRAINT "KEY_COMPRA" PRIMARY KEY ("NRO_COMP") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE. MODIFY 44 .  Constraints for Table DET_COMP_INV -------------------------------------------------------ALTER TABLE "JVARGAS"."CLIENTES" ADD CONSTRAINT "KEY_CLIENTES" PRIMARY KEY ("CEDULA") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE. 2011  Constraints for Table CLIENTES ALTER TABLE "JVARGAS"."DET_COMP_INV" ("NRO_COMP" NOT NULL ENABLE).  Constraints for Table COMPRA ALTER TABLE "JVARGAS". ALTER TABLE "JVARGAS". "COD_INV") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE. ALTER TABLE "JVARGAS"."DET_COMP_INV" ADD CONSTRAINT "KEY_DET_COMP_INV" PRIMARY KEY ("NRO_COMP". ALTER TABLE "JVARGAS"."COMPRA" MODIFY ("NRO_COMP" NOT NULL ENABLE)."CLIENTES" MODIFY ("CEDULA" NOT NULL ENABLE).

2011 ALTER TABLE "JVARGAS"."FACTURA" MODIFY ("NRO_FACT" NOT NULL ENABLE). ALTER TABLE "JVARGAS"."DET_COMP_INV" MODIFY ("COD_INV" NOT NULL ENABLE)."INVENTARIO" ADD CONSTRAINT "KEY_INVENTARIO" PRIMARY KEY ("COD_INV") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) 45 . "COD_INV") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE.AUDITORIA EN BASE DE DATOS ORACLE 10G."DET_FACT_INV" MODIFY ("NRO_FACT" NOT NULL ENABLE)."DET_FACT_INV" ADD CONSTRAINT "KEY_DETALLE_FACT_INV" PRIMARY KEY ("NRO_FACT". ALTER TABLE "JVARGAS". ALTER TABLE "JVARGAS".  Constraints for Table DET_FACT_INV ALTER TABLE "JVARGAS".  Constraints for Table FACTURA ALTER TABLE "JVARGAS"."FACTURA" ADD CONSTRAINT "KEY_FACTURA" PRIMARY KEY ("NRO_FACT") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE.  Constraints for Table INVENTARIO ALTER TABLE "JVARGAS"."DET_FACT_INV" MODIFY ("COD_INV" NOT NULL ENABLE).

ALTER TABLE "JVARGAS".AUDITORIA EN BASE DE DATOS ORACLE 10G."PROVEEDORES" ("RUC_PROV") ENABLE.  Constraints for Table PROVEEDORES ALTER TABLE "JVARGAS".  Ref Constraints for Table COMPRA ALTER TABLE "JVARGAS".  Constraints for Table USUARIOS ALTER TABLE "JVARGAS". ALTER TABLE "JVARGAS"."INVENTARIO" MODIFY ("COD_INV" NOT NULL ENABLE). MODIFY 46 ."PROVEEDORES" ADD CONSTRAINT "KEY_PROVEE" PRIMARY KEY ("RUC_PROV") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE."PROVEEDORES" ("RUC_PROV" NOT NULL ENABLE). 2011 TABLESPACE "USERS" ENABLE."USUARIOS" MODIFY ("IDUSER" NOT NULL ENABLE)."DET_COMP_INV" ADD CONSTRAINT "COMPRA_DET_INV" FOREIGN KEY ("NRO_COMP") REFERENCES "JVARGAS".  Ref Constraints for Table DET_COMP_INV ALTER TABLE "JVARGAS". ALTER TABLE "JVARGAS"."USUARIOS" ADD CONSTRAINT "USUARIOS_PK" PRIMARY KEY ("IDUSER") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE."COMPRA" ("NRO_COMP") ENABLE."COMPRA" ADD CONSTRAINT "PROVEE_COMPRA" FOREIGN KEY ("RUC_PROV_COMP") REFERENCES "JVARGAS".

AUDITORIA EN BASE DE DATOS ORACLE 10G. 2011 ALTER TABLE "JVARGAS"."CLIENTES" ("CEDULA") ENABLE."INVENTARIO" ("COD_INV") ENABLE."INVENTARIO" ("COD_INV") ENABLE."FACTURA" ("NRO_FACT") ENABLE."FACTURA" ADD CONSTRAINT "CLIENTES_FACTURA" FOREIGN KEY ("CED_CLI_FACT") REFERENCES "JVARGAS"."PROVEEDORES" ADD CONSTRAINT "CIUDAD_PROVEEDORES" FOREIGN KEY ("COD_CIU_PROV") REFERENCES "JVARGAS"."DET_FACT_INV" ADD CONSTRAINT "INV_DET_FACT" FOREIGN KEY ("COD_INV") REFERENCES "JVARGAS". DDL for Sequence ID_AUDITORIA_SECUENCIA 47 .  Ref Constraints for Table FACTURA ALTER TABLE "JVARGAS"."DET_FACT_INV" ADD CONSTRAINT "FACTURA_DET_INV" FOREIGN KEY ("NRO_FACT") REFERENCES "JVARGAS"."CIUDAD" ("COD_CIU") ENABLE.  Ref Constraints for Table PROVEEDORES ALTER TABLE "JVARGAS".  Ref Constraints for Table DET_FACT_INV ALTER TABLE "JVARGAS". ALTER TABLE "JVARGAS"."DET_COMP_INV" ADD CONSTRAINT "INV_DET_COMP" FOREIGN KEY ("COD_INV") REFERENCES "JVARGAS".