Está en la página 1de 5

AUDITORIA TALLERES ORACLE

USUARIOS , PRIVILEGIOS, ROLES Y AUDITORIA


---------------------------------------
-- 1. CREANDO USUARIO
----------------------------------------
CREATE USER USER100 IDENTIFIED BY 123
DEFAULT TABLESPACE USERS
QUOTA UNLIMITED ON USERS;

----------------------------------------
-- 2. LISTA DE USUARIOS
----------------------------------------
SELECT * FROM DBA_USERS;

----------------------------------------
-- 3. CAMBIO DE PASWORD Y BLOQUEO
----------------------------------------
ALTER USER USER100 IDENTIFIED BY 321;

ALTER USER USER100 ACCOUNT LOCK; / UNLOCK

--------------------------------------------------------------
-- 3. ASIGNACION DE PRIVILEGIOS DE SISTEMAS
--------------------------------------------------------------
GRANT CREATE SESSION TO USER100; -- Proceda a conectarse

--------------------------------------------------------------
-- 4. ASIGNACION DE PRIVILEGIOS DE OBJETOS
--------------------------------------------------------------
GRANT SELECT ON SCOTT.EMP TO USER100;

GRANT SELECT , INSERT, UPDATE , DELETE ON SCOTT.DEPT TO USER100;

--------------------------------------------------------------
-- 5. DENEGAR PRIVILEGIOS
--------------------------------------------------------------
REVOKE SELECT ON SCOTT.EMP FROM USER100;

--------------------------------------------------------------
-- 6. ROLES
--------------------------------------------------------------
CREATE ROLE JEFATURA NOT IDENTIFIED;

--------------------------------------------------------------
-- 7. ASIGNANDO PRIVILEGIOS A LOS ROLES
--------------------------------------------------------------
GRANT SELECT , INSERT , UPDATE ON SCOTT.DEPT TO JEFATURA;

CREATE USER USER200 IDENTIFIED BY 123

GRANT JEFATURA TO USER200;

Instructor : ALAIN MEJIA AVALOS alain_mejia@talleresoracle.com


AUDITORIA TALLERES ORACLE

AUDITORIA DE BASE DE DATOS


----------------------------------------------------------------------------
-- 1. CONSULTAR SI LA BD TIENE ACTIVADA LA AUDITORIA
----------------------------------------------------------------------------
SELECT * FROM V$PARAMETER
WHERE NAME = 'audit_trail'

----------------------------------------------------
-- 2. ACTIVAR LA AUDITORIA
----------------------------------------------------

a. A travs del SPFILE ( parmetro esttico, requiere reinicio de server )


ALTER SYSTEM SET AUDIT_TRAIL = 'DB' SCOPE = SPFILE;

b. Bajar la instancia, con el SQLPLUS


SQL>SHUTDOWN IMMEDIATE;

c. Configurar la activacin de la auditoria


SQL>STARTUP ;

----------------------------------------------------
-- 3. CONSULTAR LA TABLA QUE CONTIENE LAS PISTAS DE AUDITORIA
----------------------------------------------------
SELECT * FROM SYS.AUD$;

----------------------------------------------------
-- 4. BORRAR LAS PISTAS DE AUDITORIAS
----------------------------------------------------
DELETE FROM SYS.AUD$;

-------------------------------------
--5. AUDITORIA DE SENTENCIAS
-------------------------------------
-- Vista que registra las reglas de auditoria de sentencias
-- ( dba_stmt_audit_opts )
SELECT SUBSTR( USER_NAME , 1 , 10 ) ,
SUBSTR( AUDIT_OPTION , 1 , 20 ) ,
SUBSTR( SUCCESS , 1 , 10 ) ,
SUBSTR( FAILURE, 1 , 10 )
FROM DBA_STMT_AUDIT_OPTS
ORDER BY 1;

--------------------------------------------------------------------
-- 6. CREAR EL USUARIO USER20 Y ASIGNAR A ESTE USUARIO EL ROL DE DBA
--------------------------------------------------------------------
CREATE USER USER20 IDENTIFIED BY 123
GRANT DBA TO USER20;

Instructor : ALAIN MEJIA AVALOS alain_mejia@talleresoracle.com


AUDITORIA TALLERES ORACLE

--------------------------------------------------------------------
-- 7. AUDITAR LA SENTENCIA SELECT TABLE E INSERT TABLE DEL USUARIO
USER20.
--------------------------------------------------------------------
AUDIT SELECT TABLE , INSERT TABLE BY USER20 BY ACCESS;

--------------------------------------------------------------------
-- 8. CONSULTE CUALES SON LAS SENTENCIAS AUDITADAS DEL USUARIO USER20
--------------------------------------------------------------------
SELECT SUBSTR( USER_NAME , 1 , 10 ) ,
SUBSTR( AUDIT_OPTION , 1 , 20 ) ,
SUBSTR( SUCCESS , 1 , 10 ) ,
SUBSTR( FAILURE, 1 , 10 )
FROM DBA_STMT_AUDIT_OPTS
ORDER BY 1;

--------------------------------------------------------------------
-- 9. CONCTESE COMO USER20 Y CONSULTE LA TABLA SCOTT.DEPT Y
-- COMPRUEBE QUE DICHA ACCIN EST REGISTRADA EN DBA_AUDIT_TRAIL.
--------------------------------------------------------------------
SELECT SUBSTR(OS_USERNAME,1,20) USUARIO_SO,
SUBSTR(USERNAME,1,12) USUARIO,
TO_CHAR(TIMESTAMP,'DD-MM-YYY HH24:MI:SS') TIEMPO_CONEXION,
SUBSTR(ACTION_NAME,1,10) ACCION,
SUBSTR( OBJ_NAME , 1, 15 ) OBJETO
FROM DBA_AUDIT_TRAIL
WHERE USERNAME = 'USER20' AND OBJ_NAME IN ( 'DEPT' , 'BONUS')
ORDER BY USERNAME,TIMESTAMP,LOGOFF_TIME;

--------------------------------------------------------------------
-- 10. INSERTE 2 REGISTROS EN LA TABLA SCOTT.DEPT Y COMPRUEBE QUE
-- DICHA ACCIN EST REGISTRADA EN DBA_AUDIT_TRAIL.
--------------------------------------------------------------------
INSERT INTO SCOTT.DEPT VALUES ( 50 , 'ALMACENERO' , 'MIAMI');
INSERT INTO SCOTT.DEPT VALUES ( 55 , 'VENTAS' , 'MADRID');
Consulta similar a la anterior

--------------------------------------------------------------------
-- 11. DESACTIVAR LA AUDITORIA SELECT TABLE DEL USUARIO USER20.
--------------------------------------------------------------------
NOAUDIT SELECT TABLE BY USER20 ;

Comprobando:
SELECT SUBSTR( USER_NAME , 1 , 10 ) ,
SUBSTR( AUDIT_OPTION , 1 , 20 ) ,
SUBSTR( SUCCESS , 1 , 10 ) ,
SUBSTR( FAILURE, 1 , 10 )
FROM DBA_STMT_AUDIT_OPTS
ORDER BY 1;

Instructor : ALAIN MEJIA AVALOS alain_mejia@talleresoracle.com


AUDITORIA TALLERES ORACLE

-----------------------------------
-- 12. AUDITORIA DE OBJETOS
-----------------------------------
-- Consultar las auditoras de objetos activas. (DBA_OBJ_AUDIT_OPTS )
SELECT *
FROM DBA_OBJ_AUDIT_OPTS ;

-----------------------------------
-- 13. ACTIVAR LA AUDITORA RELACIONADAS CON LAS ACCIONES DE CONSULTAS
-- ( SELECT , INSERT Y UPDATE ) SOBRE EL OBJETO SCOTT.DEPT
-----------------------------------
AUDIT SELECT, INSERT, DELETE, UPDATE ON SCOTT.DEPT;

--------------------------------------------------------
-- 14. CONSULTE LA OBJETOS AUDITADOS (DBA_OBJ_AUDIT_OPTS )
--------------------------------------------------------
SELECT *
FROM DBA_OBJ_AUDIT_OPTS

--------------------------------------------------------
-- 15. CONCTESE COMO USER20 Y CONSULTE LA TABLA SCOTT.DEPT,INSERTE
-- DATOS. VERFIQUE EL REGISTRO DE AUDITORA.
--------------------------------------------------------
-- Comprobando
SELECT SUBSTR(OS_USERNAME,1,10) USUARIO_SO,
SUBSTR(USERNAME,1,12) USUARIO,
TO_CHAR(TIMESTAMP,'DD-MM-YYY HH24:MI:SS') TIEMPO_CONEXION,
SUBSTR(OWNER,1,10) PROPIE,
SUBSTR(OBJ_NAME,1,15) OBJETO,
SUBSTR(ACTION_NAME,1,35) ACCION
FROM DBA_AUDIT_OBJECT
WHERE USERNAME='USER20' AND OBJ_NAME LIKE '%DEPT%'
ORDER BY TIMESTAMP DESC

--------------------------------------------------------
-- 16. DESACTIVAR TODAS LAS OPCIONES DE AUDITORA DE OBJETOS QUE
-- EXISTEN POR DEFECTO.
--------------------------------------------------------
SQL> NOAUDIT ALL ON DEFAULT;

Instructor : ALAIN MEJIA AVALOS alain_mejia@talleresoracle.com


AUDITORIA TALLERES ORACLE

-----------------------------------------------
-- 17. AUDITORIA DE GRANO FINO
-----------------------------------------------

En el ejemplo se auditan las sentencias INSERT, UPDATE, DELETE, y


SELECT en la tabla Scott.dept, controlando cualquier acceso a la
columna DNAME pertenecientes al departamento SALES:

BEGIN
DBMS_FGA.ADD_POLICY(
OBJECT_SCHEMA => 'SCOTT',
OBJECT_NAME => 'DEPT',
POLICY_NAME => 'CHK_HR_EMP',
AUDIT_CONDITION => 'DNAME= ''SALES'' ',
AUDIT_COLUMN => 'DNAME',
STATEMENT_TYPES => 'INSERT,UPDATE,DELETE,SELECT');
END;

-----------------------------------------------
-- 18. INSERTAR UN REGISTRO DE DEPARTAMENTO PARA SALES, COMPRUEBE
-- LA AUDITORIA
----------------------------------------------
INSERT INTO SCOTT.DEPT VALUES ( 12 , 'SALES' , 'LIMA');

INSERT INTO SCOTT.DEPT VALUES ( 3 , 'VENTAS' , 'LIMA');

-- CONSULTANDO EL REGISTRO DE AUDITORIA FINA


SELECT TO_CHAR( TIMESTAMP , 'DD/MM/YY HH24:MI') TIEMPO , DB_USER ,
USERHOST, SUBSTR( OBJECT_NAME , 1 , 15 ) , SUBSTR( OBJECT_SCHEMA , 1 , 15 ) ,
POLICY_NAME ,SQL_TEXT
FROM DBA_FGA_AUDIT_TRAIL;

-----------------------------------------------
-- 19. ELIMINAR LA AUDITORIA ANTERIOR
----------------------------------------------
BEGIN
DBMS_FGA.DROP_POLICY( object_schema =>'SCOTT' ,
object_name => 'dept',
policy_name =>'chk_hr_emp');

END;

Instructor : ALAIN MEJIA AVALOS alain_mejia@talleresoracle.com

También podría gustarte