Usuarios y Seguridad



Documentos relacionados
CREATE USER ADMINISTRADOR IDENTIFIED BY ADMIN DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 500K ON USERS;

Tema: Auditoria de Base de datos. Objetivo Especifico

Tema: Auditoria de Base de datos. Parte I

Administración de Sistemas Gestores de Bases de Datos

Administración Básica de Oracle9i

CONTROL DE ACCESO. curso 2008

Seguridad y Auditoría de Bases de Datos Oracle

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002

Select table data Insert table data Update table data Delete table data Create table

Instituto Profesional DuocUC Escuela de Ingeniería Control File

Auditoría en Oracle Sistemas Gestores de Base de Datos Juan Javier Rodríguez Guisado

Administración Básica de Oracle 10g. Prácticas usuarios, perfiles, privilegios y roles.

Seguridad en SQL Server 2005

PROYECTO ADMINISTRACIÓN ORACLE ENTERPRISE MANAGER

sql*plus es un programa de linea de comandos de oracle que puede ejecutar comandos sql y pl/sql de forma interactiva o mediante un script.

Oracle Database 10g: Taller de Administración I 1-2

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

Administración Básica de Oracle9i.

Seguridad de la Información Permisos. Sistemas de Bases de Datos II - ITS EMT - CETP

Oracle Básico PL/SQL

Escrito por Beatriz Hernández Jueves, 13 de Octubre de :47 - Actualizado Jueves, 13 de Octubre de :04

Sub consultas avanzadas

Ejercicios: Administración de Bases de Datos en ORACLE

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

Oracle 12c DISEÑO Y PROGRAMACIÓN

MANUAL BÁSICO DE ORACLE

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

DOCUMENTO DE INSTALACION DEL APLICATIVO PREDIAL

MANUAL COPIAS DE SEGURIDAD

Base de datos relacional

Recuperación de instancias dañadas usando RMAN

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

INTEGRANTES: NOHELY PARRA AURA PONCE ERIKA GONZALEZ MARLON GARCIA CARLOS ESTRADA SECCION: 15N2IS

T12 Vistas y tablas temporales

Universidad Nacional de Costa Rica Administración de Bases de Datos

Instalación de Casandra Para instalar cassandra se recomienda tener la última versión de JAVA instalada.

Gestión de parches Aranda Versión (doc v1.1)

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears

CONSULTAS BASICAS EN SQL SERVER

E16 - Diseño de Sistemas de Bases de Datos Boletín 3

Descripción de la BBDD para las prácticas

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

Curso de PHP con MySQL Gratis

Estándares para la construcción de Sentencias SQL

Administración Básica de Oracle9i

Instalación de la SOA Suite 11g Instalación de los requisitos previos 1. I nstalación de la JDK Nota: 2. I nstalación de la Base de Datos

Tutorial Oracle SQL Developer 1.2.1

MySQL: Guía de Referencia

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Nociones de performance

AUDITANDO EN LAS BASES DE DATOS

Formatos para prácticas de laboratorio

6.0 Funcionalidades Adicionales

1

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

Acronis License Server. Guía del usuario

Introducción a PostgreSQL con PHP

ADMINISTRACIÓN DE BASE DE DATOS

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos

Toda base de datos relacional se basa en dos objetos

SEGURIDAD SQL SERVER

UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES

Consultas con combinaciones

Migración De Bases De Datos De Terceros

MANUALITO MS-SQL SERVER

3 GESTIÓN DE TABLESPACES

UNIVERSIDAD CATOLICA DE SANTIAGO DE GUAYAQUIL FACULTAD DE INGENIERIA TRABAJO DE GRADO

Backup & Recovery Oracle 9i

Guí a Ra pida Dropbox.

Manual de Administración de Correo Electrónico

Manual de Instalación SP6 TABLA DE CONTENIDO 1. INSTALACION DEL SERVIDOR SP6 2 3 INSTALACION DEL CLIENTE SP6 14

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL EXTENSIÓN BARQUISIMETO BARQUISIMETO ESTADO. LARA

1. Arquitectura y estructura interna de un gestor de bases de datos.

Manual de uso de la Consola de Administración para usuarios Administradores.

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

Internet Information Server

U.E JUAN DE VELASCO CREAR DATOS EN SQL

1. Conectarse al catalogo de RMAN de una BBDD determinada

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

El proceso de Instalación de Microsoft SQL Server 2008

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

Instructivo fecha. ACL Results Manager Instructivo para publicación de resultados. 3.mar.15. Referencia. Usuarios. Results Manager

Backup & Recovery Oracle 9i. Las copias físicas offline, conocidas como Backups en frío, se realizan cuando la Base de Datos está parada.

CREACION DE USUARIOS EN MY SQL

AUDITORÍA DE BASE DE DATOS MICROSOFT SQL SERVER 2014 WALTER JAVIER NAPÁN TARMEÑO

Practica 1 Instalación del SGBD. Ing. María Elena Reyes Castellanos. Miguel Ángel Garduño Córdova Isaac Méndez Hernández

5 Objetos de base de datos

Conceptos básicos Oracle 10g Introducción - Administración de Oracle - Orasite.com

Oracle Express 10g. Marta Zorrilla Universidad de Cantabria

PHP Perfect SQL v1.0 (SQL perfectas en PHP)

Operación Microsoft Access 97

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Vistas en postgresql

2. ESTUDIO DE INDICES

MANUAL DE USUARIO PANEL DE CONTROL Sistema para Administración del Portal Web.

Microsoft SQL Server Usuarios, Roles, Encriptación y Back Up de la base de datos.

Transcripción:

Objetivos Usuarios y Seguridad El presente documento tiene como objetivo ser una guía de los ejercicios del libro Oracle 9i DBA JumpStart citado al pie de cada página en todo el documento y servir fundamentalmente de complemento en la ejecución de cada uno de los ejemplos, verificando su pertinencia. Asimismo se pretende facilitar a los alumnos de cursos de Bases de Datos la realización de prácticas con un manejador de DBMS (sistema manejador de base de datos) ampliamente difundido que tiene buenas cualidades. Servir como práctica para el usuario, interesado en el aprendizaje de la administración de las bases de datos y del DBMS Oracle. Igualmente auxiliar a Administradores de Bases de Datos y a desarrolladores de aplicaciones que estén interesados en el conocimiento de Oracle DBMS. Convenciones utilizadas en este documento En el presente documento se emplean tres tipos de nomenclatura, las cuales son descritas a continuación: 1. El tipo de rectángulo con contorno punteado y fondo punteado indica la sintaxis de la sentencia SQL. CREATE USER user <other options>; 2. El tipo de rectángulo con contorno completo y fondo texturizado indica la sentencia SQL ingresada al DBMS, al lado de cada una de las sentencias aparece una referencia a un archivo punto sql en el cual esta contenida la(s) sentencia(s) o script, el archivo punto sql podrá ser ejecutado desde SQL*Plus, la ubicación de los scripts utilizados en este documento se encuentran en el subdirectorio SCRIPTS ubicado en la siguiente dirección del disco duro C:\DBAJS\SCRIPTS, como complemento se anexó una tabla de los scripts empleados en el documento al final del mismo, indicando el nombre y su descripción de cada uno. create user jsmith identified by blinkie6; us1.sql 3. El tipo de rectángulo con contorno completo de esquinas redondeadas y fondo punteado indica la salida de la sentencia SQL ingresada al DBMS, por lo que se espera que las salidas que el usuario obtenga deban ser similares a las presentadas a lo largo del documento. SQL> create user jsmith identified by blinkie6; User created. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 1 de 19

Introducción Si una compañía tiene más de un empleado que necesite el acceso a una base de datos con un DBMS de Oracle, entonces la seguridad de la base de datos es una preocupación primordial para el DBA. La integridad de datos de la base de datos y el nivel de la seguridad de DBMS son mantenidos, en parte, previniendo acciones desautorizadas o involuntarias en la base de datos. La seguridad de la base de datos con un DBMS se puede dividir en dos áreas: seguridad de datos y seguridad del sistema. La seguridad de datos incluye la supervisión y asignación a usuarios de permisos a varios objetos en la base de datos. La seguridad del sistema cubre el proceso de la conexión del usuario, cuanto espacio de disco se asigna a cada usuario, y que clases de acciones puede realizar cada usuario. Crear cuentas de usuario La Sintaxis básica para crear un usuario es la siguiente: CREATE USER user <other options>; Asignar Passwords En la siguiente consulta se muestra un ejemplo de creación de usuario y asignación de password: create user jsmith identified by blinkie6; us1.sql SQL> create user jsmith identified by blinkie6; User created. El DBA o el usuario pueden usar el comando ALTER USER para cambiar el password de un usuario. alter user jsmith identified by spinner40; us2.sql SQL> alter user jsmith identified by spinner40; User altered. Para cambiar el password desde una sesión de SQL*Plus se emplea el comando PASSWORD como se muestra a continuación: password us3.sql Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 2 de 19

SQL> password Changing password for JSMITH Old password: ********* New password: ******** Retype new password: ******** Password changed SQL> Creación y Asignación de Perfiles El siguiente ejemplo muestra la creación de nuevo perfil (profile) en la base de datos, para asegurar que los usuarios serán desconectados de la base de datos después de 15 minutos de inactividad. create profile st_user limit idle time 15; us4.sql SQL> create profile st_user limit 2 idle_time 15; Profile created. En el nuevo perfil ST_USER que se ha creado todos los recursos son puestos en UNLIMITED excepto para el recurso IDLE_TIME, el cual ha sido puesto para 15 minutos. El DBA puede modificar al usuario creado recientemente para usar el perfil anterior. alter user jsmith profile st_user; us5.sql SQL> alter user jsmith profile st_user; User altered. SQL> Para las sesiones siguientes del usuario JSMITH, la sesión será desconectada si la sesión pasa de 15 minutos de inactividad. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 3 de 19

Asignar tablespace y quotas alter user jsmith default tablespace users; us6.sql SQL> alter user jsmith default tablespace users; User altered. En el siguiente ejemplo se verifica el cambio del default tablespace, la consulta se realiza sobre el diccionario de datos de DBA_USERS: select username, default_tablespace, temporary_tablespace from dba_users where username = JSMITH ; us7.sql SQL> select username, default_tablespace, 2 temporary_tablespace from dba_users 3 where username = 'JSMITH'; USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE -------------------------- ------------------------ --------------------- JSMITH USERS TEMP Si el default tablespace no se especifica cuando la cuenta de usuario ha sido creada, el tablespace SYSTEM es usado. Esto no es una buena idea para dejar que SYSTEM sea el default tablespace. Puesto que el SYSTEM tablespace contiene todos los datos del diccionario de objetos, ahí hay un nivel alto de contención desde antes, asi cualquier nuevo objeto de usuario en el SYSTEM tablespace puede tener un impacto negativo que incluye el desempeño del sistema. Para poder crear un usuario de forma que se defina el default tablespace y su temporary tablespace es como se muestra a continuación: CREATE USER jsmith IDENTIFIED BY blinkie6 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; us8.sql Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 4 de 19

Oracle Enterprise Manager (OEM) Es una herramienta basada en GUI Oracle Enterprise Manager (OEM). Esta herramienta que facilita la creación de un usuario, requiere capacitación para su uso, pero esta especifica automáticamente el USER tablespace como el default tablespace para los nuevos usuarios, entre otros datos por omisión. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 5 de 19

Quota, la cuota o espacio asignado Un límite numérico en el monto del espacio en disco que un usuario puede asignar con un tablespace. La quota puede ser especificada como UNLIMITED. El nuevo usuario JSMITH estará en espera para crear tablas para otras personas, el DBA asigna 15MB de espacio en disco en el USERS tablespace para JSMITH. alter user jsmith quota 15M on users; us9.sql SQL> alter user jsmith quota 15M on users; User altered. Si el DBA especifica UNLIMITED en lugar de 15MB, JSMITH no tendrá ningún límite ya que hay mucho espacio asignado en el USERS tablespace para los objetos de la base de datos. Otorgar y anular privilegios Los privilegios son derechos de ejecución específicas de sentencias SQL, existen 2: GRANT y REVOKE. Los siguientes son privilegios típicos del DBA: Privilegio CREATE USER DROP USER CREATE ANY TABLE CREATE TABLESPACE AUDIT ANY DROP ANY INDEX Descripción Crea un nuevo usuario en la base de datos. Borra un usuario de la base de datos. Crea una nueva tabla en cualquier esquema. Crea un nuevo tablespace. Activa o desactiva la auditoria de la base de datos. Borra un índice en cualquier esquema. Los siguientes son privilegios de usuario: Privilegio CREATE SESSION CREATE TABLE CREATE PROCEDURE Descripción Establece una conexión con la base de datos. Crea una tabla en el esquema del usuario. Crea una función o un procedimiento. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 6 de 19

La Sintaxis es la siguiente: GRANT sys_privilege [, sys_privilege...] TO user [, user, role, PUBLIC...]; El privilegio de CREATE SESSION es importante porque un usuario no puede ingresar a la base de datos sin este privilegio. El DBA, realiza esta operación para asignar una cuenta de un nuevo usuario, el cual cuando se creo no tenía este privilegio. En adición, el nuevo usuario querrá crear nuevas tablas CREATE TABLE. El DBA aplicará ambos privilegios para JSMITH usando el comando GRANT. grant create session, create table to jsmith; us10.sql SQL> grant create session, 2 create table to jsmith; Grant succeeded. El usuario JSMITH ahora puede acceder y crear tablas en la base de datos con el esquema JSMITH. Privilegios de objeto Permiten a los usuarios manipular el contenido de los objetos de la base de datos en otros esquemas. Los siguientes son privilegios típicos: Privilegio SELECT UPDATE DELETE INSERT EXECUTE INDEX Descripción Lee (consulta) el acceso a una tabla. Actualiza (cambia) las filas en una tabla o una vista. Borra filas desde una tabla o vista. Agrega filas a una tabla o vista. Corre (executa) un procedimiento o función almacenado. Crea un índice en una tabla. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 7 de 19

Los privilegios de objeto son otorgados con una declaración GRANT utilizando la siguiente sintaxis: GRANT obj_privilege [(column_list)] [, obj_privilege...] ON object TO user [, user, role, PUBLIC...] [WITH GRANT OPTION]; El siguiente ejemplo muestra la forma para hacer que algunas de las columnas de una tabla estén disponibles para cualquier usuario. La declaración es como se muestra a continuación: grant update (email, phone_number) on hr.employees to public; us11.sql SQL> grant update (email, phone_number) on hr.employees to public; Grant succeeded. Ahora EMPLOYEES puede ser actualizado sobre los campos email y phone_number. Para poder ejemplificar este otorgamiento de privilegios sobre EMPLOYEES es necesario conectarse con otro usuario a la base de datos en este caso emplearemos el usuario antes creado JSMITH como se muestra a continuación: connect jsmith/spinner40; us12.sql SQL> connect jsmith/spinner40; Connected. SQL> Realizamos un UPDATE sobre EMPLOYEES update hr.employees set email='rsmith' where employee_id = 135; us13.sql SQL> update hr.employees set email='rsmith' 2 where employee_id = 135; 1 row updated. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 8 de 19

De cualquier modo intentaremos actualizar una columna diferente en la tabla que no esta permitida empleando la siguiente consulta: update hr.employees set salary=25000 where employee_id = 135; us14.sql SQL> update hr.employees set salary=25000 2 where employee_id = 135; update hr.employees set salary=25000 * ERROR at line 1: En efecto, las filas de la tabla son denegadas. select * from hr.employees where employee_id = 135; us15.sql SQL> select * from hr.employees 2 where employee_id = 135; select * from hr.employees * ERROR at line 1: ORA-01031: insufficient privileges Cualquier otro usuario como HR solo tiene privilegios de objeto sobre EMPLOYEES para actualizar las columnas EMAIL y PHONE_NUMBER. Para quitar los privilegios sobre estas columnas se deberá acceder como usuario SYS, y emplear el comando revoke, el cual se muestra a continuación: revoke update on hr.employees from public; us16.sql SQL> revoke update on hr.employees from public; Revoke succeeded. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 9 de 19

Creación y asignación de roles Sintaxis para la creación de un ROLE CREATE ROLE <rolename> [IDENTIFIED BY <role_password>]; El primer paso para crear un role create role hr_emp_dept; us17.sql SQL> create role hr_emp_dept; Role created. El siguiente paso, los privilegios en las tablas deberán ser agregados para los roles: grant select on hr.employees to hr_emp_dept; us18.sql SQL> grant select on hr.employees to hr_emp_dept; Grant succeeded. grant select on hr.departments to hr_emp_dept; us19.sql SQL> grant select on hr.departments to hr_emp_dept; Grant succeeded. Por último, el role será otorgado para el usuario OE: grant hr_emp_dept to oe; us20.sql SQL> grant hr_emp_dept to oe; Grant succeeded. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 10 de 19

Ahora el usuario OE puede leer el contenido de las tablas EMPLOYEES y DEPARTMENTS en el esquema HR. En el futuro, para proporcionar el mismo acceso para las tablas HR para otros departamentos, solo el último otorgamiento necesita ser ejecutado. Para verificar los roles otorgados para el usuario OE, se realiza la siguiente consulta nuevamente sobre el diccionario de datos: select grantee, granted_role from dba_role_privs where grantee = OE ; us21.sql SQL> select grantee, granted_role from dba_role_privs 2 where grantee = 'OE'; GRANTEE GRANTED_ROLE ------------------------------ -------------------------- OE CONNECT OE RESOURCE OE HR_EMP_DEPT Para encontrar los privilegios que están asignados para el role HR_EMP_DEPT, se ejecuta otra consulta sobre el diccionario de datos ROLE_TAB_PRIVS: select role, owner, table_name, privilege from role_tab_privs where role= HR_EMP_DEPT ; us22.sql SQL> select role, owner, table_name, privilege from 2 role_tab_privs where role='hr_emp_dept'; ROLE OWNER TABLE_NAME PRIVILEGE ----------------- -------- -------------------- --------- HR_EMP_DEPT HR EMPLOYEES SELECT HR_EMP_DEPT HR DEPARTMENTS SELECT El role HR_EMP_DEPT tiene privilegio SELECT nuevamente en dos tablas en el esquema HR: EMPLOYEES y DEPARTMENTS. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 11 de 19

Auditoría Oracle almacena información acerca de las actividades de la base de datos. Los especifica el DBA y se almacenan en la tabla AUD$, su propietario es SYS. Sintaxis: AUDIT {statement_clause object_clause} [BY SESSION BY ACCESS] [WHENEVER [NOT] SUCCESSFUL]; Retomando el usuario creado JSMITH y teniendo en consideración que el nuevo usuario tiene problemas para crear tablas, activaremos la auditoría, para así ver como es que el nuevo usuario crea tablas y ver así sus defectos. audit create table by jsmith whenever not successful; us23.sql SQL> audit create table by jsmith 2 whenever not successful; Audit succeeded. Ahora emplearemos la cuenta del usuario JSMITH para crear una tabla de ejemplo y así mostrar el uso de la auditoría. connect jsmith/spinner40; us24.sql SQL> connect jsmith/spinner40; Connected. SQL> Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 12 de 19

create table temp_emp (employee_id number(6), email varchar2(25)); us25.sql SQL> create table temp_emp 2 (employee_id number(6), 3 email varchar2(25)); Table created. SQL> create table temp_emp 2 (employee_id number(6), 3 email varchar2(25)); create table temp_emp * ERROR at line 1: ORA-00955: name is already used by an existing object El segundo intento de creación falla porque la tabla ya existe. Para poder visualizar la vista de la tabla DBA_AUDIT_TRAIL es necesario conectarse ahora con la cuenta del usuario SYS. Una vez conectados nos interesa visualizar la tabla SYS.AUD$, pero también podemos consultar el diccionario de datos llamado DBA_AUDIT_TRAIL en el cual se almacenan los datos de SYS.AUD$ en formato más legible, para poder realizar esta vista emplearemos la siguiente consulta: select username, obj_name, timestamp, action_name from dba_audit_trail; us26.sql SQL> select username, obj_name, timestamp, action_name from 2 dba_audit_trail; USERNAME OBJ_NAME TIMESTAMP ACTION_NAME ------------- ------------ --------- ------------ JSMITH TEMP_EMP 23-SEP-05 CREATE TABLE JSMITH TEMP_EMP 23-SEP-05 CREATE TABLE 2 row selected. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 13 de 19

Para deshabilitar la auditoría de CREATE TABLE se emplea el siguiente comando: noaudit create table by jsmith; us27.sql SQL> noaudit create table by jsmith; Noaudit succeeded. Auditoría de objetos audit select, insert, update, delete on hr.employees; us28.sql SQL> audit select, insert, update, delete 2 on hr.employees; Audit succeeded. Será necesario accesar a la base de datos con los usuarios HR y OE y realizar operaciones sobre la tabla EMPLOYEES, ya que es necesario realizar estos procedimientos de no hacerlo al verificar el diccionario de datos DBA_AUDIT_TRAIL no mostrara nada si no se realizaron operaciones sobre la tabla EMPLOYEES el ejemplo de este sería como se muestra en el siguiente ejemplo select username, obj_name, to_char(timestamp, dd-mon-yy hh:mipm ) "Date/Time" from dba_audit_trail where obj_name = EMPLOYEES ; us29.sql SQL> select username, obj_name, 2 to_char(timestamp,'dd-mon-yy hh:mipm') "Date/Time" from 3 dba_audit_trail where obj_name = 'EMPLOYEES'; no rows selected La siguiente consulta muestra un ejemplo cuando se realizan operaciones sobre la tabla EMPLOYEES, dando así información en el diccionario de datos DBA_AUDIT_TRAIL. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 14 de 19

select username, obj_name, to_char(timestamp, dd-mon-yy hh:mipm ) "Date/Time" from dba_audit_trail where obj_name = EMPLOYEES ; us29.sql SQL> select username, obj_name, 2 to_char(timestamp,'dd-mon-yy hh:mipm') "Date/Time" from 3 dba_audit_trail where obj_name = 'EMPLOYEES'; USERNAME OBJ_NAME Date/Time --------------- --------------- ------------------ HR EMPLOYEES 27-oct-02 08:53AM HR EMPLOYEES 27-oct-02 08:59AM HR EMPLOYEES 27-oct-02 10:23AM HR EMPLOYEES 27-oct-02 10:56AM OE EMPLOYEES 27-oct-02 11:59AM 5 rows selected. En esta consulta se muestra que la actividad ha sido muy ligera, con cuatro accesos por HR y uno por OE, todos en la mañana. Ahora se deshabilitara la auditoría de la tabla EMPLOYEES empleando el comando NOAUDIT como se muestra a continuación: noaudit select, insert, update, delete on hr.employees; us30.sql SQL> noaudit select, insert, update, delete 2 on hr.employees; Noaudit succeeded. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 15 de 19

Modificar el parámetro AUDIT_TRAIL en Oracle 9i. Para poder inicializar el parámetro audit_trail en la base de datos es necesario realizar desde SQL*Plus una conexión con el usuario SYS como se muestra a continuación: connect sys as sysdba us31.sql SQL> connect sys as sysdba Enter password: *** Connected. Para poder verificar la configuración de inicialización del parámetro audit_trail podemos usar el comando show parameter show parameter audit._trail us32.sql SQL> show parameter audit_trail NAME TYPE VALUE ------------------------------------ ----------- --------- audit_trail string NONE alter system set audit_trail=db scope=spfile; us33.sql SQL> alter system set audit_trail=db scope=spfile; System altered. Para que el cambio realizado se pueda ejecutar es necesario reiniciar la base de datos, por lo que desde SQL *Plus emplearemos el comando shutdown como se muestra a continuación: shutdown us34.sql SQL> shutdown Database closed. Database dismounted. ORACLE instance shut down. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 16 de 19

Una vez realizado este paso ahora iniciaremos nuevamente la instancia de la base de datos con el comando startup como se muestra a continuación: startup us35.sql SQL> startup ORACLE instance started. Total System Global Area 135338868 bytes Fixed Size 453492 bytes Variable Size 109051904 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes Database mounted. Por último ingresaremos con el usuario SYS para verificar la configuración de del parámetro AUDIT_TRAIL. connect sys as sysdba us31.sql SQL> connect sys as sysdba Enter password: *** Connected. show parameter audit_trail us36.sql SQL> show parameter audit_trail NAME TYPE VALUE ------------------------------------ ----------- ------- audit_trail string DB En la tabla se muestra el parámetro con el valor DB por lo cual ya podemos emplear la auditoría dentro de nuestra base de datos, se puede emplear dentro del ámbito del usuario SYS, y ver los registros del comando consultando la tabla SYS.AUD$ o el diccionario de datos DBA_AUDIT_TRAIL. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 17 de 19

Tabla de Scripts La siguiente tabla muestra los scripts empleados a lo largo de este documento y una pequeña descripción de cada uno de estos para una mejor administración. Nombre del Script us1.sql us2.sql us3.sql us4.sql us5.sql us6.sql us7.sql us8.sql us9.sql us10.sql us11.sql us12.sql us13.sql us14.sql us15.sql us16.sql us17.sql us18.sql us19.sql us20.sql us21.sql us22.sql us23.sql us24.sql us25.sql us26.sql us27.sql Descripción / Función Muestra un ejemplo de creación de usuario y asignación de password. Muestra el uso del comando ALTER USER para cambiar el password de un usuario. Muestra el uso del comando PASSWORD para cambiar el password de un usuario sobre la sesión. Muestra la creación de un perfil en la base de datos, en el cual se toma en cuenta el tiempo de inactividad del usuario. Muestra como se puede asignar un perfil a un usuario. Muestra la forma de asignar el default tablespace para un usuario. Verifica el cambio del default tablespace realizado anteriormente. Muestra el uso correcto de la creación de una cuenta de usuario además de su default tablespace y temporary tablespace. Asigna al usuario 15M de espacio en disco en el USERS tablespace para la creación de tablas. Otorga el privilegio CREATE SESSION, además del de crear tablas. Muestra la forma de poner algunas columnas de una tabla para su acceso público. Muestra la conexión del usuario JSMITH a la base de datos. Muestra el uso de la sentencia UPDATE sobre la tabla EMPLOYEES. Realiza un intento de UPDATE sobre una columna de la tabla EMPLOYEES que no esta declarada pública. Realiza un intento de SELECT sobre una columna de la tabla EMPLOYEES que no esta declarada pública. Quita los privilegios otorgados sobre las columnas declaradas como públicas. Muestra la creación de un role. Otorga los privilegios sobre las tablas para los roles. Otorga los privilegios sobre las tablas para los roles. Otorga el role al usuario OE. Verifica los roles otorgados para el usuario OE. Ejecuta una consulta sobre el diccionario de datos ROLE_TAB_PRIVS. Crea una auditoría sobre la tabla para el usuario JSMITH. Muestra la conexión del usuario JSMITH a la base de datos. Crea una tabla llamada temp_emp. Consulta el diccionario de datos DBA_AUDIT_TRAIL y muestra de forma legible su contenido. Deshabilita la auditoria de CREATE TABLE. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 18 de 19

Nombre del Script us28.sql us29.sql us30.sql us31.sql us32.sql us33.sql us34.sql us35.sql us36.sql Descripción / Función Audita objetos como son SELECT, INSERT, UPDATE, DELETE sobre la tabla EMPLOYEES. Muestra el resultado de auditar los objetos SELECT, INSERT, UPDATE, DELETE sobre la tabla EMPLOYEES. Deshabilita la auditoria de la tabla EMPLOYEES empleando el comando NOAUDIT. Muestra la conexión del usuario SYS como DBA. Verifica la inicialización del parámetro audit_trail. Modifica el valor del parámetro audit_trail para su utilización sobre la base de datos de forma permanente. Muestra el uso del comando shutdown el cual finaliza la instancia de la base de datos completamente. Muestra el uso del comando startup el cual inicializa la instancia de la base de datos completamente. Verifica la configuración del parámetro AUDIT_TRAIL. Material de Apoyo Didáctico Ing: Sergio Salinas Lugo Página 19 de 19