Domanda

Qualcuno sa di un modo per forzare un suggerimento nolock su tutte le transazioni emesse da un determinato utente?Vorrei fornire un account di accesso per un team di supporto per interrogare il sistema di produzione, ma voglio proteggerlo, forzando un nolock su tutto ciò che fanno.Sto usando SQL Server 2005.

È stato utile?

Soluzione

Questa è una dolorosa e hacky modo per farlo, ma è quello che stiamo facendo, dove io lavoro.Stiamo anche utilizzando il classico asp in modo che stiamo usando inline chiamate sql.in realtà abbiamo avvolgere la chiamata sql in una funzione (qui si può verificare per un utente specifico) e aggiungere "IMPOSTARE il LIVELLO di ISOLAMENTO della TRANSAZIONE READ UNCOMMITTED" all'inizio della chiamata.

Credo funzionalmente questo è lo stesso come il no hint di blocco.Mi dispiace non ho un puro SQL risposta, sarei interessato a sapere se si trova un buon modo per fare questo.

Altri suggerimenti

È possibile configurare il vostro personale di supporto SQL Management Studio per impostare il valore predefinito transazione livello di isolamento READ UNCOMMITTED (Strumenti->Opzioni->Esecuzione di Query->SQL Server->Avanzate).Questo è funzionalmente simile avendo NOLOCK su tutto.

I lati negativi sono che dovresti farlo per ogni membro del vostro team di supporto, e hanno la capacità di modificare la configurazione di SQL Management Studio.

OK, è necessario chiarire che cosa si sta cercando di fare qui.

Se si sta cercando di ridurre il blocco del database e, eventualmente, fornire il proprio supporto agli utenti dei dati che possono, non è mai veramente impegnato nel database.Consentendo loro di scrivere tutto quello che vogliono per il database, quindi nolock è la strada da percorrere.Vi saranno mostrati anche il aggiunto bonus che il tuo utente non sarà ancora in grado di aumentare il loro livello di isolamento utilizzando il LIVELLO di ISOLAMENTO della TRANSAZIONE di comando.

Se si sta tentando di limitare i danni che possono causare durante l'esecuzione di roba contro il DB, guardare per implementare la sicurezza, assicurarsi che essi sono ammessi solo accesso in lettura di tabelle e guardare stripping tutti l'accesso alle stored procedure e funzioni.

Trovo NOLOCK è pesantemente frainteso su stack overflow.

Si potrebbe creare un utente limitato per il team di supporto, e, quindi, scrittura di stored procedure o viste con il nolock-suggerimento.Quindi solo dare l'accesso a tali e non diretto della tabella selezionare l'accesso.

Come Espo accennato, ma sono abbastanza sicuro che non c'è alcun modo diretto per fare quello che stai chiedendo.Come ha detto, è possibile una sorta di riuscire da limitare l'accesso dell'utente a procedure che hanno costruito-in NOLOCK codificato in loro.

Purtroppo, limitare gli utenti a SPs sconfigge lo scopo di questo.Speravo ci fosse qualche modo ho potuto permettere loro di query di tutto e, quindi, migliorare le loro abilità di risoluzione dei problemi.Grazie per il vostro aiuto ragazzi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top