Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   SQL Server (http://www.forosdelweb.com/f87/)
-   -   Trigger sobre SELECT (http://www.forosdelweb.com/f87/trigger-sobre-select-457658/)

Lusanche 18/01/2007 13:41

Trigger sobre SELECT
 
Deseo auditar los accesos a nivel de consulta a una tabla, pero no tengo fuentes de la aplicacion. Es posible construir un trigger para dejar rastro de los selects que se realicen sobre una tabla?

u_goldman 18/01/2007 14:28

Re: Trigger sobre SELECT
 
Los triggers solo son para sentencias de acción (DELETE, UPDATE, INSERT), pero aquí hay un "guorkarond":

http://solidqualitylearning.com/blog...11/25/214.aspx

Saludos

Pip 22/02/2007 03:58

Re: Trigger sobre SELECT
 
Mis dudas acerca de esta solución son las siguientes:
  • La línea 'EXEC master.dbo...' no requiere la existencia de un archivo concreto o, preguntado de otra manera, ¿Esto sólo funciona para una determinada base de datos? Es decir, Oracle.
  • La otra duda es sobre el funcionamiento del ejemplo que pone la persona que ha hecho ese artículo. En la línea que no comprendo demasiado bien pone: 'Select from Customers happened!' (supongo que es para controlar los Select que se hagan sobre la tabla Customers exclusivamente) y debajo:
Cita:

SELECT TOP 1 *
FROM Customers
SELECT TOP 1 *
FROM Orders
SELECT TOP 1 c.CustomerID
FROM Customers c INNER JOIN Orders o
ON c.CustomerID=o.CustomerID
El Trigger se dispara cuando alguien haga una consulta a la tabla customers, es decir, en el primer y tercer caso pero, al dispararse, ¿Qué hace exactamente? Me explico, si lo que yo quiero es hacer un INSERT del usuario que ha está haciendo el SELECT, ¿En qué parte y cómo lo haría?

u_goldman 23/02/2007 10:00

Re: Trigger sobre SELECT
 
No, no, a ver...

La linea exec master.dbo, lo que hace es guardar en el log el mensaje "Select from Customers happened!" como warning para que despues con el Event Viewer lo puedas -valga la redundancia ver.

El trigger hace eso, guarda en el log que se ha hecho una seleccion en x tabla, por supuesto que puedes en lugar de guardar en el log hacer un INSERT a otra tabla.

Necesitas crear el trace desde SQL Profiler ;-)
Ah, una cosa mas, el ejemplo es para SQL...

Saludos

danichalay 13/12/2012 13:43

Sql profiler
 
Utiliza el sql profiler, lo configuras correctamente para que capture procedimientos almacenados y sentencias "select", y luego guardas el reporte generado con las capturas. sería la forma más facil y directa para hacerlo

Libras 13/12/2012 13:59

Respuesta: Trigger sobre SELECT
 
tarde pero seguro 2012-2007=5 años jejejeje

danichalay 13/12/2012 14:20

Respuesta: Trigger sobre SELECT
 
jajaja, sorry, esque mi maquina se congelaba con cada tecla, asi que me demoré en responder 5 años, jajaja. naaa en serio, no me habia dado cuenta de la fecha. andaba buscando otro tema pasé por aquí y quise responder saludos

Libras 13/12/2012 15:51

Respuesta: Trigger sobre SELECT
 
suele pasar jejejeje :) saludos!


La zona horaria es GMT -6. Ahora son las 10:14.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.