Oracle Audit: differenze tra le versioni
Nessun oggetto della modifica |
|||
Riga 30: | Riga 30: | ||
Tracciare chi si connette: |
Tracciare chi si connette: |
||
AUDIT SESSION BY ACCESS; |
AUDIT SESSION BY ACCESS; |
||
Tracciare tutte le operazioni privilegiate (sconsigliato): |
Tracciare tutte le operazioni privilegiate (sconsigliato perché molto oneroso e prolisso): |
||
AUDIT DBA BY ACCESS; |
AUDIT DBA BY ACCESS; |
||
oppure, con logica per utente: |
oppure, con logica per utente: |
||
Riga 53: | Riga 53: | ||
noaudit all statements by bubba; |
noaudit all statements by bubba; |
||
drop user bubba cascade; |
drop user bubba cascade; |
||
==Cancellare regole di tracciamento== |
==Cancellare regole di tracciamento== |
Versione delle 12:10, 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 <udername> 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.