Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > SQL Server

Respuesta
 
Herramientas Desplegado
Antiguo 18-ene-2007, 12:41   #1 (permalink)
Lusanche ha deshabilitado el karma
 
Fecha de Ingreso: enero-2007
Mensajes: 11
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?

Última edición por Lusanche; 18-ene-2007 a las 12:43. Razón: Ortografia
Lusanche está desconectado   Responder Citando
Antiguo 18-ene-2007, 13:28   #2 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.364
Enviar un mensaje por MSN a u_goldman
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
__________________
¿Qué darías por vivir un sueño?
u_goldman está desconectado   Responder Citando
Antiguo 22-feb-2007, 02:58   #3 (permalink)
Pip
Pip ha deshabilitado el karma
 
Avatar de Pip
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 223
Enviar un mensaje por MSN a Pip
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?
__________________
por Pip
Pip está desconectado   Responder Citando
Antiguo 23-feb-2007, 09:00   #4 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.364
Enviar un mensaje por MSN a u_goldman
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
__________________
¿Qué darías por vivir un sueño?
u_goldman está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 19:32.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93