Buenas tardes;
Me gustaría saber si es posible saber qué usuario de windows (no de BBDD), ha hecho, por ejemplo, crear o eliminar una tabla, o bien la IP / Nombre de máquina desde la que se ha hecho la operación.
Gracias, un saludo.
| |||
¿Quién creo/elimino una tabla? Buenas tardes; Me gustaría saber si es posible saber qué usuario de windows (no de BBDD), ha hecho, por ejemplo, crear o eliminar una tabla, o bien la IP / Nombre de máquina desde la que se ha hecho la operación. Gracias, un saludo. |
| |||
Respuesta: ¿Quién creo/elimino una tabla? Te puedes crear un trigger a nivel de BBDD para que se dispare cada vez que se hace un DDL, nosotros tenemos uno que es muy efectivo para pillar a la gente que hace cosas que no debe ( DDL’S en producción ) y repartir alguna collejita que otra. Mira a ver si te sirve. TRIGGER XXXXXXXXX after create or alter or drop on DATABASE begin insert into TABLA_AUDITORIA VALUES( SUBSTR(ora_sysevent,1,50), SUBSTR(ora_dict_obj_owner,1,50), SUBSTR(ora_dict_obj_name,1,50), SUBSTR(ora_dict_obj_TYPE,1,50), UPPER(sys_context('USERENV','TERMINAL')), SYSDATE, substr(UPPER(sys_context('USERENV','OS_USER')),1,5 0)); END; En este caso, el ultimo valor del insert es el usuario del sistema operativo ( güindous ) |
| ||||
Respuesta: ¿Quién creo/elimino una tabla? Como bien plantea jc3000, con un trigger puedes registrar la información de cada sesión y sus operaciones, también tienes la alternativa de activar la auditoria que provee Oracle, ya comentamos un poco en http://www.forosdelweb.com/f100/sabe...5/#post4046337. En comparación, el trigger tiene ventajas porque es simple de implementar, no necesita configuración de parámetros de la base, y al ser un desarrollo propio lo puedes hacer tan simple o complejo como sea necesario, y desventajas porque, como todo código, es susceptible a errores, además de que solo registra las operaciones que finalicen con éxito, a diferencia de la auditoria que puede registrar las operaciones que finalicen con éxito o error, por ejemplo, una sentencia drop table que falle porque el usuario no tiene privilegios no será registrada por un trigger ya que solo se dispara si la operación finaliza correctamente, pero si con la auditoria que registra la operaciones independientemente del resultado. Saludos |
Etiquetas: |