DataBaser
Notas sobre Oracle, por Cristian Baser
Notas sobre Oracle, por Cristian Baser
Jun 25th
A partir de Oracle 10gR2 se cuenta con un feature que permite utilizar bajo Linux el log de auditoría del sistema. Requiere modificar el archivo /etc/syslog.conf y agregar la linea: user.notice /var/log/log_file_name.
Reiniciar syslog con
# /etc/init.d/syslog restart
Del lado de la base modificar el parametro AUDIT_SYSLOG_LEVEL = facility.level
Donde facility puede tener los siguientes valores USER, LOCAL0-LOCAL7, SYSLOG, DAEMON, KERN, MAIL, AUTH, LPR, NEWS, UUCP or CRON. Mientras que el level puede ser: NOTICE, INFO, DEBUG, WARNING, ERR, CRIT, ALERT, EMERG .
alter system set audit_syslog_level='user.notice' scope=spfile;
Reiniciar la base. Chequear el archivo con tail -f /var/log/log_file_name
Como ejemplo, activamos la auditoria sobre el usuario sys con:
alter system set audit_sys_operations=TRUE scope=spfile;
Conectarse y realizar alguna operación y volver a ver el contenido del archivo.
En UNIX, las acciones CONNECT, STARTUP y SHUTDOWN con sysdba / sysoper son auditados en archivos con extensión .aud que se encuentran el directorio adump o en el que este especificado en el parametro AUDIT_FILE_DEST. En Windows se utiliza Windows Event Log por lo que AUDIT_SYSLOG_LEVEL y AUDIT_FILE_DEST no se requieren. (Para ver los logs ir a Inicio>Panel de Control>Herramientas Administrativas>Visor de Eventos).
Para auditar otras acciones con esos privilegios hay que setear AUDIT_SYS_OPERATIONS=TRUE.
Jun 23rd
Actualmente estoy leyendo este libro de la Editorial Apress que trata entre otras cosas de parametros ocultos y performance sobre las versiones 9i y 10g.
Secrets of the Oracle Database (2009) by Norbert Debes
ISBN: 978-1-4302-1952-1
Algunos Contenidos de referencia:
1 – Syslog. PGA: Monitoreo y Parametros Ocultos.
This’s a example to audit sys user to SYSLOG utility.
- Modify syslog.conf
# vi /etc/syslog.conf
user.notice /var/log/syslog-orcl
# touch /var/log/syslog-orcl
- Restart syslog
# /etc/init.d/syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
- Modify AUDIT_SYSLOG_LEVEL initialization parameter on Database
AUDIT_SYSLOG_LEVEL = facility.level
The value of facility can be any of the following: USER, LOCAL0-LOCAL7, SYSLOG, DAEMON, KERN, MAIL, AUTH, LPR, NEWS, UUCP or CRON.
The value of level can be any of the following: NOTICE, INFO, DEBUG, WARNING, ERR, CRIT, ALERT, EMERG .
SYS> show parameter AUDIT_SYSLOG_LEVEL
NAME TYPE VALUE
———————————— ———– ——————————
audit_syslog_level string
SYS> alter system set audit_syslog_level=’user.notice’ scope=spfile;
System altered.
SYS> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS> startup
ORACLE instance started.
Total System Global Area 810053632 bytes
Fixed Size 2217712 bytes
Variable Size 645925136 bytes
Database Buffers 155189248 bytes
Redo Buffers 6721536 bytes
Database mounted.
Database opened.
What did we see in log file?
# tail -f /var/log/syslog-orcl
Jan 12 16:37:47 RHEL5-TEST Oracle Audit[18624]: LENGTH : ’155′ ACTION :[7] ‘STARTUP’ DATABASE USER:[1] ‘/’ PRIVILEGE :[4] ‘NONE’ CLIENT USER:[6] ‘oracle’ CLIENT TERMINAL:[13] ‘Not Available’ STATUS:[1] ’0′ DBID:[0] ”
Jan 12 16:37:47 RHEL5-TEST Oracle Audit[18827]: LENGTH : ’148′ ACTION :[7] ‘CONNECT’ DATABASE USER:[1] ‘/’ PRIVILEGE :[6] ‘SYSDBA’ CLIENT USER:[6] ‘oracle’ CLIENT TERMINAL:[5] ‘pts/1′ STATUS:[1] ’0′ DBID:[0] ”
Test to Logon by sys:
$ sqlplus / as sysdba
SYS>
In log fle:
Jan 12 16:40:51 RHEL5-TEST Oracle Audit[19269]: LENGTH : ’159′ ACTION :[7] ‘CONNECT’ DATABASE USER:[1] ‘/’ PRIVILEGE :[6] ‘SYSDBA’ CLIENT USER:[6] ‘oracle’ CLIENT TERMINAL:[5] ‘pts/1′ STATUS:[1] ’0′ DBID:[10] ’1233539256′
We can audit sys operation (audit_sys_operations=true) by:
SYS> show parameter audit_sys_operations
NAME TYPE VALUE
———————————— ———– ——————————
audit_sys_operations boolean FALSE
SYS> alter system set audit_sys_operations=TRUE scope=spfile;
System altered.
SYS> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS> startup
ORACLE instance started.
Total System Global Area 810053632 bytes
Fixed Size 2217712 bytes
Variable Size 645925136 bytes
Database Buffers 155189248 bytes
Redo Buffers 6721536 bytes
Database mounted.
Database opened.
Test Query:
SYS> select count(*) from v$session;
COUNT(*)
———-
88
1 row selected.
In log file:
Jan 12 16:55:09 RHEL5-TEST Oracle Audit[20698]: LENGTH : ’183′ ACTION :[30] ‘select count(*) from v$session’ DATABASE USER:[1] ‘/’ PRIVILEGE :[6] ‘SYSDBA’ CLIENT USER:[6] ‘oracle’ CLIENT TERMINAL:[5] ‘pts/1′ STATUS:[1] ’0′ DBID:[10] ’1233539256′
That’s just example
This page is wiki editable click here to edit this page.
Mar 25th
El siguiente script (bash) realiza un export de un esquema, verifica que halla terminado de forma exitosa y en tal caso procede a comprimirlo con gzip, luego corta el dump en partes y registra el hash md5 de cada una de las partes generadas. Por ultimo copia los trozos o partes del dump, el log correspondiente del export y el archivo con los hash md5 a servidores auxiliares.
Entre algunas cosas que se puede corregir o mejorar estan que el renombrado del log no es necesario, si se incluye la especificación correspondiente en el comando expdp, también, para las operaciones con los servidores auxiliares se puede emplear una lista/array.
Mar 25th
Checklist de pasos a implementar (como root):
Feb 23rd
Se puede exportar los datos de una instancia remota (empleando un dblink), almacenandose localmente el archivo dump correspondiente.

El parámetro a tener en cuenta en el expdp es NETWORK_LINK, el cual recibe el nombre del database link definido previamente.
Para el ejemplo anterior, se indica una ubicación especifica mediante DIRECTORY usando un directorio definido en la base de datos.