2011-10-27 13 views
13

Estoy usando Oracle 11g Standard Edition.Oracle SQL Query logging

Me gustaría registrar todas las consultas SQL, que están siendo ejecutadas por los usuarios, en una tabla.

¿Cómo se puede hacer esto?

+0

¿Con qué propósito desea esta información? ¿Está auditando? ¿Monitoreo de uso? ¿Algo más? – APC

+0

Es para auditar (seleccionar, actualizar, insertar, eliminar) – JMW

+0

Relacionados: http://stackoverflow.com/questions/1570978/oracle-xe-query-log –

Respuesta

10

Si está utilizando una versión moderna de la base de datos (9i o posterior) y tiene una licencia de Enterprise Edition, puede utilizar la Auditoría Fine-Graining. Nos permite auditar las consultas de los usuarios a un nivel muy bajo de granularidad, a través de políticas definidas.

Para capturar el texto SQL y las variables de vinculación, deberá configurar el parámetro AUDIT_TRAIL de forma adecuada al agregar una Política de FGA. Find out more.


"estoy usando un estándar de 11 g, por lo que las funciones de auditoría no son compatibles."

No exactamente. El comando AUDIT es parte de la construcción estándar de Oracle, pero solo nos permite capturar cuando un usuario dado emite un SELECT contra una tabla determinada. Pero, sí, para averiguar exactamente lo que están seleccionando requiere licencia de Enterprise Edition.

Además, no hay ningún disparador ON SELECT, por lo que no podemos hacer rodar el nuestro.


"Así que puedo utilizar comando AUDIT en la edición estándar? ... Pero entonces un consultor me dijo, que no puedo usarlo sin tener que pagar la empresa licencia?"

Hablando como un consultor, tengo que decir que esos tipos no siempre saben de lo que están hablando.

Así que seamos claros:

  • el comando AUDIT es parte de Oracle SQL. Se puede usar con la Edición estándar. De hecho, desde 11g está habilitado por defecto. Audita la actividad general. Find out more.
  • Fine Grained Auditing es un paquete PL/SQL que solo se puede utilizar si tiene Enterprise Edition. Nos permite auditar la actividad del usuario a un nivel muy bajo. Find out more.
+0

estoy usando un estándar 11g, por lo que las funciones de auditoría no son compatibles . :/ – JMW

+0

Entonces, ¿puedo usar el comando AUDIT en la edición estándar? Ya lo tuve trabajando para 2 mesas. ¿Pero entonces un consultor me dijo que no puedo usarlo sin pagar una licencia empresarial? – JMW

+0

muchas gracias muchísimo :-D – JMW

0

Para el registro RÁPIDO, FÁCIL de SQL, try my monitoring answer here. No para el registro a largo plazo, pero funciona muy bien solo para ver lo que está sucediendo en una ventana de tiempo pequeña. :-)