Banner 1

Mostrando entradas con la etiqueta oracle. Mostrar todas las entradas
Mostrando entradas con la etiqueta oracle. Mostrar todas las entradas

Cómo activar la auditoría de una base de datos

0 comentarios
Agradecimientos especiales a black el cual ha puesto varios aportes en el blog y sobre todo la nueva plantilla.

---------------------------------------------------------------------------------------------------------------

Se pretende mediante un sencillo ejemplo práctico para ver cómo se puede auditar las conexiónes a una base de datos ORACLE o auditar los intentos de modificación a las tablas de un usuario.
Teniendo en cuenta que el parámetro que habilita la posibilidad de auditar la base de datos ORACLE en el init.ora es audit_trail que el comando sql que activa la auditoría sobre algo es AUDIT ( para desactivar NOAUDIT ) y que la tabla para mirar ( usuario sys ) el seguimiento de auditoría es dba_audit_trail vamos a realizar este sencillo ejemplo.


  • Activar la auditoria de intento de conexiones fallidas para todos los usuarios.

  • Miramos que actualmente no está activada la auditoria en la base de datos
    SQL> select name , value from v$parameter where name like 'audit_trail';
    audit_trail NONE
    Activamos la auditoría de la base de datos
    SQL> alter system set audit_trail = DB scope = spfile;
    Reiniciamos la base de datos ( shutdown immediate, startup ) y comprobamos que la auditoría se ha activado.
    SQL> select name , value from v$parameter where name like 'audit_trail';
    audit_trail DB
    Activamos la auditoría para ver la conexión y desconexión de los usuarios a la base de datos, se hace con la siguiente sentencia
    SQL> audit connect;

     


  • Visualizar las tablas de auditoría para comprobar que se insertan datos cuando intentamos conectarnos sin lograrlo.

  • En el apartado anterior hemos activado la auditoría para ver como se conectan los usuarios a la base de datos, vamos a realizar varias pruebas y mostrar dónde se puede comprobar que los usuarios se han conectado a la base de datos.
    Nos conectamos con varios usuarios a la base de datos ( en nuestro caso con system y el usuario user9 que está creado )
    SQL> connect user9/user9;
    SQL> connect system/system;
    Tras habernos conectado a la base de datos miramos la tabla dba_audit_trail para ver que datos contiene.
    SQL> select username , action_name , priv_used , returncode from dba_audit_trail ;
    "SYSTEM" "LOGON" 1017
    "SYSTEM" "LOGON" 1017
    "USER9" "LOGON" 1017
    "USER9" "LOGON" "CREATE SESSION" 0
    "USER9" "LOGON" 1017
    "USER9" "LOGON" 1017
    Observarmos que en esta tabla se registran los intentos de conexión de los usuarios, por lo tanto podemos saber quien se ha conectado a la base de datos


  • Activar la auditoria sobre la modificación de tablas del usuario Scott.

  • Ahora vamos a activar la auditoría sobre la modificación de las tablas sobre el usuario Scott, de esta forma cualquier modificación realizada en una tabla que pertenezca a este usuario será registrada en las tablas y podremos ver quien ha realizado esa modifiación.
    SQL>audit insert,update on scott . bonus by access;
    SQL>audit insert,update on scott . emp by access;
    SQL>audit insert,update on scott .dept by access;
    SQL>audit insert,update on scott . salgrade by access;
    En este caso estamos auditando cada una de las tablas que pertenencen al usuario scott ( bonus, emp, dept, salgrade ) en caso de que alguien inserte algo en ellas o realice alguna actualización. ( si queremos auditar el borrado o la lectura de alguna fila, solo hay que añadir los permisos de select y delete detrás del comando audit).Al ponerlo by access se guardará un registro en la tabla de auditoría por cada intento de insert o update que se realice sobre cada una de las tablas nombradas. ( exite también el registro by session, en el cual se registra por sesión única el intento de insert o update sobre las tablas ).
    Miramos la tabla user_obj_audit_opts ( con el usuario scott )
    SQL>select * from user_obj_audit_opts;
    "BONUS" "TABLE" "-/-" "-/-" "-/-" "-/-" "-/-" "-/-" "A/A" "-/-" "-/-" "-/-" "A/A" "-/-" "-/-" "-/-" "-/-" "-/-"
    "DEPT" "TABLE" "-/-" "-/-" "-/-" "-/-" "-/-" "-/-" "A/A" "-/-" "-/-" "-/-" "A/A" "-/-" "-/-" "-/-" "-/-" "-/-"
    "EMP" "TABLE" "-/-" "-/-" "-/-" "-/-" "-/-" "-/-" "A/A" "-/-" "-/-" "-/-" "A/A" "-/-" "-/-" "-/-" "-/-" "-/-"
    "SALGRADE" "TABLE" "-/-" "-/-" "-/-" "-/-" "-/-" "-/-" "A/A" "-/-" "-/-" "-/-" "A/A" "-/-" "-/-" "-/-" "-/-" "-/-"
    Y observamos que es lo que estamos auditando del usuario scott, en este caso se vería que eta activada para cada una de las tablas la auditoría para update e insert.
    (A/A) --> activado / por acceso
    La prueba que se puede realizar es conectarse con otro usuario que tenga permisos de insert y update sobre estas tablas y realizar una serie de inserciones y actualizaciones en esas tablas. En este caso suponemos que un usuario, user9 que tiene permisos de inserción y actualización sobre las tablas del usuario scott ha realizado una serie de inserciones y actualizaciones sobre estas tablas. La forma de ver si las ha realizado o no ( teniendo activada la auditoría es la siguiente ).
    SQL>select * from sys . dba_audit_trail where ( action_name = 'INSERT' ) or ( action_name = 'UPDATE' ) ;
    El resultado es el siguiente:
    "ERIN-0S2WXM4BDG\Erin" "USER9" "ERIN-0S2WXM4BDG" 19/04/2006 15:38:56 "SCOTT" "BONUS" 2 "INSERT" 267 2 47 0
    "ERIN-0S2WXM4BDG\Erin" "USER9" "ERIN-0S2WXM4BDG" 19/04/2006 15:39:09 "SCOTT" "BONUS" 2 "INSERT" 267 3 50 0
    "ERIN-0S2WXM4BDG\Erin" "USER9" "ERIN-0S2WXM4BDG" 19/04/2006 15:39:19 "SCOTT" "BONUS" 6 "UPDATE" 267 4 55 0
    Observamos que se han registrado los intentos de inserción y de modificación sobre la tabla BONUS.

    Fuente:
    http://www.orasite.com/tutoriales/como-activar-la-auditoria-de-una-base-de-datos.html
    0 comentarios

    An A-Z Index of Oracle SQL Commands

    ANALYZE
    AUDIT

    CALL
    Cluster - CREATE CLUSTER
    - ALTER CLUSTER
    - DROP CLUSTER
    COMMENT
    COMMIT
    CONNECT
    CONSTRAINT - Add / Enable
    Context - CREATE CONTEXT
    - DROP CONTEXT
    Controlfile - CREATE CONTROLFILE

    Database - CREATE DATABASE
    - ALTER DATABASE
    DELETE
    DESCRIBE
    Dimension - CREATE DIMENSION
    - ALTER DIMENSION
    - DROP DIMENSION
    Directory - CREATE DIRECTORY
    - DROP DIRECTORY

    EXEC
    EXECUTE IMMEDIATE
    EXPLAIN PLAN

    Function - CREATE FUNCTION
    - ALTER FUNCTION
    - DROP FUNCTION

    GRANT

    Index - CREATE INDEX
    - ALTER INDEX
    - DROP INDEX
    Indextype - CREATE INDEXTYPE
    - DROP INDEXTYPE
    INSERT
    INTERSECT

    Java - CREATE JAVA
    - ALTER JAVA
    - DROP JAVA

    Library - CREATE LIBRARY
    - DROP LIBRARY
    Link - CREATE DATABASE LINK
    - DROP DATABASE LINK
    LOCK TABLE

    Mview - CREATE MATERIALIZED VIEW
    - ALTER MATERIALIZED VIEW
    - DROP MATERIALIZED VIEW
    - CREATE MATERIALIZED VIEW LOG
    - ALTER MATERIALIZED VIEW LOG
    - DROP MATERIALIZED VIEW LOG
    MINUS

    NOAUDIT

    Operator - CREATE OPERATOR
    - DROP OPERATOR
    Outline - CREATE OUTLINE
    - ALTER OUTLINE
    - DROP OUTLINE

    Package - CREATE PACKAGE/BODY
    - ALTER PACKAGE
    - DROP PACKAGE
    Pfile - CREATE PFILE
    Procedure - CREATE PROCEDURE
    - ALTER PROCEDURE
    - DROP PROCEDURE
    Profile - CREATE PROFILE
    - ALTER PROFILE
    - DROP PROFILE

    RECOVER
    RENAME
    Resource - ALTER RESOURCE COST
    REVOKE
    RMAN - Recovery Manager
    Role - CREATE ROLE
    - SET ROLE
    - ALTER ROLE
    - DROP ROLE
    ROLLBACK
    Rollback - CREATE ROLLBACK SEGMENT
    - ALTER ROLLBACK SEGMENT
    - DROP ROLLBACK SEGMENT

    SAVEPOINT
    Schema - CREATE SCHEMA
    SELECT
    Sequence - CREATE SEQUENCE
    - ALTER SEQUENCE
    - DROP SEQUENCE
    Session - ALTER SESSION
    SHUTDOWN
    SNAPSHOT
    SPfile - CREATE SPFILE
    STARTUP
    Statistics - ASSOCIATE STATISTICS
    - DISASSOCIATE STATISTICS
    Synonym - CREATE SYNONYM
    - DROP SYNONYM
    System - ALTER SYSTEM

    Table - CREATE TABLE
    - ALTER TABLE
    - DROP TABLE
    Tablespace - CREATE TABLESPACE
    - ALTER TABLESPACE
    - DROP TABLESPACE
    - CREATE TEMPORARY TABLESPACE
    Transaction - SET TRANSACTION
    Trigger - CREATE TRIGGER
    - ALTER TRIGGER
    - DROP TRIGGER
    TRUNCATE
    Type - CREATE TYPE
    - ALTER TYPE
    - DROP TYPE
    - CREATE TYPE BODY
    - DROP TYPE BODY

    UPDATE
    UNION
    User - CREATE USER
    - ALTER USER
    - DROP USER

    View - CREATE VIEW
    - ALTER VIEW
    - DROP VIEW

    Syntax:

    Words in CAPS are Oracle commands, words in lower-case are the options you can modify.
    Sections enclosed in [ ] are optional, underlined options are the default
    Sections enclosed in { } are alternatives. The pipe symbol `|` indicates OR (more)
    The syntax on these pages is based on Oracle version 9.2, while this is almost all still supported in both 10g and 11g there are a few notes added where things have changed. Pages covering the newer functionality (RAC, Data Guard etc) may appear in the future.


    Fuente: http://www.ss64.com/ora/

    Powered by Bad Robot
    Helped by Blackubay