Oracle_Audit_审计

1、什么是审计

审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图dba_audit_trail查看)中。默认情况下审计是没有开启的。
不管你是否打开数据库的审计功能,以下这些操作系统会强制记录:用管理员权限连接Instance;启动数据库;关闭数据库。

2、和审计相关的两个主要参数

Audit_sys_operations
默认为false,当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在En la tabla aud$ , esto es fácil de entender Si la base de datos no se ha iniciado y aud$ no está disponible, entonces la información de conexión como conn /as sysdba solo se puede registrar en otros lugares. Si es una plataforma windows , el audti trail se registrará en la gestión de eventos de windows , y si es una plataforma linux/unix , se registrará en el archivo especificado por el parámetro audit_file_dest . Audit_trail : Ninguno : es el valor predeterminado, sin auditoría; DB : registra el registro de auditoría en las tablas relacionadas con la auditoría de la base de datos, como aud$ , y los resultados de la auditoría solo tienen información de conexión; DB, Extended : para que la auditoría los resultados incluyen no solo información de conexión, sino también información de conexión La declaración específica ejecutada en ese momento; OS : registra la pista de auditoría en el archivo del sistema operativo, y el nombre del archivo se especifica mediante el parámetro audit_file_dest; XML : recién agregado en 10g . NOTA: Estos dos parámetros son








El parámetro estático debe reiniciar la base de datos para que surta efecto.

3. Nivel de auditoría

Cuando la función de auditoría está activada, la base de datos se puede auditar en tres niveles: Declaración ( declaración ) , Privilegio (permiso), objeto (objeto).

Declaración :
auditoría por declaración, por ejemplo, la tabla de auditoría auditará todas las declaraciones de creación de tabla, eliminación de tabla, tabla truncada en la base de datos, modificación de sesión por cmy auditará todas las conexiones de base de datos de los usuarios de cmy . Privilegio : auditoría por autoridad, cuando el usuario usa la autoridad, será auditado, como ejecutar otorgar seleccionar cualquier tabla a a , después de ejecutar la auditoría seleccionar cualquier declaración de tabla, cuando el usuario a accede a la tabla del usuario b (como seleccionar * de bt ) usará seleccionar cualquier tabla


autoridad, será auditado. Tenga en cuenta que los usuarios son los propietarios de sus propias tablas, por lo que los usuarios que accedan a sus propias tablas no serán auditados.

Objeto :
auditar por objeto, solo auditar las operaciones relacionadas del objeto especificado por la palabra clave on , como aduit alter, delete, drop, insert on cmy.t by scott; aquí se auditará la tabla t del usuario cmy , pero al mismo tiempo el by sub sentencia, por lo que solo se auditarán las operaciones iniciadas por el usuario scott . Tenga en cuenta que Oracle no proporciona la función de auditoría para todos los objetos en el esquema y solo puede auditar un objeto a la vez. Para los objetos creados más tarde, Oracle proporciona la cláusula predeterminada para realizar la auditoría automática. Por ejemplo, después de ejecutar audit drop por defecto por acceso;, por La operación de drop será auditada. Pero este valor predeterminado será válido para todos los objetos de la base de datos creados más adelante. Parece que no hay forma de especificar que solo es válido para los objetos creados por un determinado usuario. En comparación con el disparador , se puede usar para el esquema DDL " Auditoría " , esta función es ligeramente insuficiente.

4. Algunas otras opciones de auditoría

por acceso/por sesión : Cada operación auditada de
por acceso generará una pista de auditoría . Por sesión El mismo tipo de operación en una sesión solo generará una pista de auditoría , que es por sesión por defecto . siempre que [no] tenga éxito : audite solo si la operación tiene éxito ( el campo de código de retorno en dba_audit_trail es 0) , y viceversa si no tiene éxito . Si se omite esta cláusula, la operación se auditará si tiene éxito o no. 5. Ver dba_audit_trail relacionado con la auditoría : guardar todos los registros de auditoría , de hecho, es solo una vista basada en aud$








vista. Otras vistas dba_audit_session, dba_audit_object, dba_audit_statement son solo un subconjunto de dba_audit_trail . dba_stmt_audit_opts : se puede usar para ver las opciones de auditoría del nivel de auditoría de declaración , es decir, qué auditorías de nivel de declaración ha establecido la base de datos . Las funciones de vista dba_obj_audit_opts, dba_priv_audit_opts son similares a all_def_audit_opts : se utilizan para ver qué auditorías de objetos predeterminadas establece la base de datos con la cláusula predeterminada . 6. Para cancelar la auditoría, cambie la declaración de auditoría correspondiente a la declaración de auditoría a noaudit . Por ejemplo, la declaración de auditoría correspondiente a la sesión de auditoría siempre que sea exitosa es una sesión de noaudit siempre que sea exitosa; la auditoría en 7 y 10g informa a todas las bases de datos de Oracle









La auditoría 10g captura el comportamiento del usuario a un nivel tan específico que puede eliminar la auditoría manual basada en disparadores.
Suponga que el usuario Joe tiene privilegios de actualización en esa tabla y actualiza una fila en la tabla de la siguiente manera:
actualice SCOTT.EMP establezca salario = 12000 donde empno = 123456;
¿Cómo rastrearía este comportamiento en la base de datos? En la base de datos Oracle 9i y versiones anteriores, la auditoría solo capturaba " quién " realizó la operación, no " qué " se realizó . Por ejemplo, le permite saber que Joe actualizó la tabla EMP propiedad de SCOTT , pero no muestra que actualizó la columna de salario en esa tabla para el número de empleado 123456 . No mostrará el valor de la columna de salario antes del cambio ; para detectar un cambio tan específico, deberá escribir su propio disparador para detectar el valor antes del cambio, o usar LogMiner para recuperarlo del registro de archivo. La auditoría detallada (FGA) , introducida en Oracle 9i , puede registrar SCN
No. y cambios a nivel de fila para reconstruir datos antiguos, pero solo se pueden usar en declaraciones de selección , no en DML , como declaraciones de actualización , inserción y eliminación . Por lo tanto, el uso de activadores, si bien era una opción poco atractiva para realizar un seguimiento de los cambios iniciados por el usuario en el nivel de fila, era la única forma confiable para las versiones anteriores a Oracle Database 10g . 8. Ejemplo de explicación 8.1 Activar auditoría SQL> conn /as sysdba SQL> mostrar auditoría de parámetros NOMBRE TIPO VALOR ---------------------------- -------- ----------- ------------------------------ destino_archivo_auditoría cadena /u01/app/oracle/admin/ORCL/adump audit_sys_operations booleano FALSO audit_syslog_level cadena












audit_trail string NINGUNO

SQL> alterar el conjunto del sistema audit_sys_operations=TRUE scope=spfile; --
审计管理用户(sysdba/sysoper角色登陆)
SQL> alter system set audit_trail=db,extended scope=spfile;
SQL> fuerza de inicio;
SQL> mostrar auditoría de parámetros
NOMBRE TIPO VALOR
------------------------------------ ------ ----- ------------------------------
audit_file_dest cadena /u01/app/oracle/admin/ORCL/adump
audit_sys_operations booleano TRUE
audit_syslog_level cadena
audit_trail string DB, EXTENDED        

8.2
、开始审计

SQL> conn /as sysdba
SQL> audit all on t_test;
SQL> conn u_test
SQL> select * from t_test;
SQL> insertar en u_test.t_test (c2,c5) valores ('test1','2');
SQL> confirmar;
SQL> eliminar de u_test.t_test;
SQL> confirmar;
SQL> conn /as sysdba
SQL> col DEST_NAME formato a30
col OS_USERNAME formato a15
col NOMBRE DE USUARIO formato a15
col USERHOST formato a15
col TERMINAL formato a15
col OBJ_NAME formato a30
col SQL_TEXT formato a60


SQL> seleccione OS_USERNAME, nombre de usuario, USERHOST, TERMINAL, TIMESTAMP, OWNER, obj_name, ACTION_NAME, sessionid, os_process , sql_text de dba_audit_trail; sql> auditar tabla seleccionada por u_test por acceso; si agrega por usuario
después del comando , solo funcionará en la auditoría de usuario , si se omite por usuario , audite todos los usuarios del sistema ( sin incluir el usuario del sistema ). Por ejemplo: AUDITAR ELIMINAR CUALQUIER MESA; --Operación de auditoría de eliminación de tabla Solo auditar el error de eliminación AUDITAR ELIMINAR CUALQUIER TABLA CUANDO SEA EXITOSO; --Auditar solo la eliminación exitosa AUDITAR ELIMINAR, ACTUALIZAR, INSERTAR EN user.table por prueba; --Auditar la tabla de pares de usuarios de prueba





eliminar, actualizar, insertar operaciones de user.table 8.3 , revocar auditoría SQL> noaudit all on t_test; 9 , declaración de auditoría auditoría en un entorno de múltiples capas: appserve- servidor de aplicaciones, jackson-client AUDITORÍA SELECCIONAR TABLA POR appserve EN NOMBRE DE jackson; Conexión o desconexión de auditoría: SESIÓN DE AUDITORÍA; SESIÓN DE AUDITORÍA POR jeff, lori; --Especifique los permisos de auditoría del usuario ( operaciones que solo se pueden realizar con este permiso ) : AUDITORÍA ELIMINAR CUALQUIER TABLA POR ACCESO CUANDO NO SEA EXITOSO; AUDITORÍA ELIMINAR CUALQUIER TABLA; AUDITORÍA SELECCIONAR TABLA, INSERTAR TABLA, ELIMINAR TABLA, EJECUTAR PROCEDIMIENTO POR ACCESO CUANDO NO SEA EXITOSO auditoría de objeto: ELIMINACIÓN DE AUDITORÍA EN jeff.emp;




















AUDITORÍA SELECCIONAR, INSERTAR, ELIMINAR EN jward.dept POR ACCESO CUANDO SEA EXITOSO;


cancelar auditoría:
NOAUDIT sesión;
NOAUDIT sesión POR jeff, lori;
NOAUDIT ELIMINAR CUALQUIER TABLA;
NOAUDIT SELECCIONAR TABLA, INSERTAR TABLA, ELIMINAR TABLA,EJECUTAR PROCEDIMIENTO;
NOAUDITAR TODO; - -Cancelar
todas las auditorías de extractos NOAUDIT ALL PRIVILEGES --Cancelar todas las auditorías de permisos NOAUDIT ALL ON DEFAULT --Cancelar todas las auditorías de objetos 10 , borrar la información de auditoría DELETE FROM SYS.AUD$; DELETE FROM SYS.AUD$ WHERE obj$name= ' EMP'; 11. Vista de auditoría STMT_AUDIT_OPTION_MAP -- código de tipo de opción de auditoría AUDIT_ACTIONS -- código de acción ALL_DEF_AUDIT_OPTS --












Opción de auditoría de objetos predeterminada
DBA_STMT_AUDIT_OPTS: opción de auditoría del sistema de base de datos actual
DBA_PRIV_AUDIT_OPTS : opción de auditoría de permisos
DBA_OBJ_AUDIT_OPTS  
USER_OBJ_AUDIT_OPTS:
opción de auditoría de objetos
DBA_AUDIT_TRAIL  
USER_AUDIT_TRAIL:
registro de auditoría
DBA_AUDIT_OBJECT  
USER_AUDIT_OBJEC T:
lista de objetos de auditoría
DBA_AUDIT_SESSION  
USER_AUDIT_SESSION --
auditoría de sesión
DBA_AUDIT_STATEMENT  
USER_AUDIT_STATEMENT --declaración
audit
DBA_AUDIT_EXISTS --audit DBA_AUDIT_POLICIES con la opción BY AUDIT NOT EXISTS --audit POLICIES DBA_COMMON_AUDIT_TRAIL --auditoría estándar +

Fine audit

12. Mueva la tabla de resultados de auditoría del espacio de tabla del sistema a otro espacio de tabla

De hecho, la tabla sys.aud$ contiene dos campos lob , y no es una simple tabla de movimiento .
El siguiente es el proceso específico :
alter table sys.aud$ move tablespace users;
alter table sys.aud$ move lob(sqlbind) store as(tablespace USERS);
alter table sys.aud$ move lob(SQLTEXT) store as(tablespace USUARIOS);
alterar el índice sys.I_AUD1 reconstruir los usuarios del espacio de tablas;

 

Supongo que te gusta

Origin blog.csdn.net/2301_76957510/article/details/130401427
Recomendado
Clasificación