Oracle Audit: differenze tra le versioni

Da Emigar.
Jump to navigation Jump to search
Riga 43: Riga 43:
Attivare tracciamento solo sui privilegi distruttivi, come <code>DROP ANY</code>,<code>UPDATE ANY</code>,<code>DELETE ANY</code>.
Attivare tracciamento solo sui privilegi distruttivi, come <code>DROP ANY</code>,<code>UPDATE ANY</code>,<code>DELETE ANY</code>.


audit delete table,update table,insert table,index,procedure by <udername> by access;
audit delete table,update table,insert table,index,procedure by <username> by access;


AUDIT TABLE,INDEX,PROCEDURE BY <username> BY ACCESS;
AUDIT TABLE,INDEX,PROCEDURE BY <username> BY ACCESS;

Versione delle 12:56, 2 mar 2020

Audit Classico

Da manualistica: "Oracle recommends that you include the BY ACCESS clause for all AUDIT statements, which results in a more detailed audit record."

Generalmente, tutto ciò che per essere fatto necessita di un privilegio, può essere tracciato. è conveniente redirigere tutti gli eventi di audit nel syslog:

ALTER SYSTEM SET AUDIT_TRAIL='OS' SCOPE=SPFILE;
ALTER SYSTEM SET AUDIT_SYS_OPERATIONS=TRUE SCOPE=SPFILE;
ALTER SYSTEM SET AUDIT_SYSLOG_LEVEL='SYSLOG.INFO' SCOPE=SPFILE;

Vedere cosa viene tracciato

Per verificare quali eventi sono tracciati:

set linesize 200 pagesize 200
col user_name for a20
col proxy_name for a20
SELECT * FROM ALL_DEF_AUDIT_OPTS;
SELECT * FROM DBA_STMT_AUDIT_OPTS ORDER BY AUDIT_OPTION;
SELECT * FROM DBA_PRIV_AUDIT_OPTS ORDER BY PRIVILEGE;

Privilegi sugli oggetti soggetti a tracciatura:

col owner for a20
col object_name for a20
SELECT * FROM DBA_OBJ_AUDIT_OPTS ORDER BY OWNER,OBJECT_NAME;


Configurare regole di tracciamento

Impostazioni minime (12.2) Tracciare chi si connette:

AUDIT SESSION BY ACCESS;

Tracciare tutte le operazioni privilegiate (sconsigliato perché molto oneroso e prolisso):

AUDIT DBA BY ACCESS;

oppure, con logica per utente:

AUDIT ALL PRIVILEGES BY <username> BY ACCESS;

tracciamento di tutto ciò che fa un utente:

AUDIT ALL STATEMENTS BY <username> BY ACCESS;

Con logica più granulare: Elencare tutti i privilegi:

select distinct  privilege from dba_sys_privs order by 1;

Attivare tracciamento solo sui privilegi distruttivi, come DROP ANY,UPDATE ANY,DELETE ANY.

audit delete table,update table,insert table,index,procedure by <username> by access;
AUDIT TABLE,INDEX,PROCEDURE BY <username> BY ACCESS;

Per avere un elenco degli statement:

create use bubba identified by bubba;
audit all statements by bubba by access;
select * from dba_stmt_audit_opts where user_name='BUBBA';
noaudit all statements by bubba;
drop user bubba cascade;

Cancellare regole di tracciamento

per disattivare auditing:

NOAUDIT ALL;
NOAUTID ALL STATEMENTS;
NOAUDIT ALL PRIVILEGES;

Con questi comandi vengono cancellate alche le regole di audit di default. Per ripristinarle è necessario lanciare:

@?/rdbms/admin/secconf

Unified Audit

Può essere rediretto sul syslog solo dalle versione 18.0 in avanti. Nella 12.2 esiste, ma scrive solo nel database.