2015-02-24 6 views
5

Mi chiedevo se il codice SQL seguente sarebbe stato memorizzato nel log, quindi potremmo guardare indietro a una data futura per vedere cosa ha digitato un utente durante l'interrogazione del database?Le query selezionate sono contenute nelle istruzioni di rollback memorizzate nel registro?

BEGIN TRAN 
SELECT * 
FROM pictures p 
INNER JOIN product pr 
ON p.item_id = pr.item_id 
ROLLBACK TRAN 

Penso che se il codice è avvolto in una clausola di rollback, alcuna traccia di ciò che l'utente ha digitato sarà visibile?

+0

molto strettamente correlati: [Are ad-hoc di sola lettura query memorizzate nel log delle transazioni di SQL Server?] (http://stackoverflow.com/questions/5516358/are-ad-hoc-read-only-queries-stored-in-sql-server-transaction-log). Mettere un'istruzione 'SELECT' in una transazione non lo promuove ancora nel log. –

risposta

1

In breve, no. Poiché non sono in corso modifiche ai dati, non è necessario memorizzare nulla nel registro. In effetti, lo ROLLBACK non importa, anche se sarebbe COMMIT ed, non ci sono ancora cambiamenti di dati in corso, e quindi nessuna registrazione.

DELETE, UPDATE e INSERT viene registrato. SELECT no. Se si desidera registrare tali tipi di query, è possibile utilizzare una traccia, utilizzare SQL Audit, creare la propria soluzione per la registrazione o utilizzare uno strumento di prodotto di terze parti.

Ecco alcune informazioni sulle tecniche diverse:

http://solutioncenter.apexsql.com/auditing-select-statements-on-sql-server/

Ecco più informazioni Audit SQL:

http://blogs.msdn.com/b/sreekarm/archive/2009/01/05/auditing-select-statements-in-sql-server-2008.aspx

+0

Ci sarebbe mai una situazione in cui la traccia non avrebbe raccolto la query di selezione? –

+0

@Schmitz: Non è necessario aggiungere informazioni su apexsql, non è correlato alla domanda dell'OP. OP no dove è stato chiesto sull'audit. Mi sembra più simile all'avvertimento – Shanky

+0

Per motivi pratici, quasi tutte le transazioni in SQL Server vengono registrate, l'unica cosa è che fn_dblog non mostrerebbe informazioni sulla selezione in questo caso. – Shanky

Problemi correlati