我有一個系統,允許用戶登錄並構建查詢以針對SQL 2012服務器運行。系統在允許的查詢中需要非常自由,所以我只是依靠SQL授予來阻止用戶執行他們不應該做的事情。防止來自非特權用戶的SQL查詢阻止關鍵進程
我擔心像priority inversion這樣的東西仍然可能發生。說非特權用戶登錄,發現一個表濫用並在其上運行十幾個外部連接。或者只是開始一個交易,並從不關閉它。
我想確保非特權用戶無法阻止來自更多特權用戶的關鍵進程。我正在考慮使用Resource Governor來做到這一點,但我不確定這是否是我可能需要擔心的其他問題的最佳方式。
確保來自非特權用戶的查詢無法阻止關鍵流程的最佳方法是什麼?
您可以限制命令超時。是否有任何有效的使用反式反應?如果不是,則不允許任何帶有反式查詢的查詢。與光標相同。那麼可重複閱讀怎麼樣 - 可以做一些真正的併發損害 - 他們需要嗎?如果你讓用戶TSQL通過,你所能做的就是限制你的暴露。 – Paparazzi 2013-03-11 15:46:19
@Blam是的,我曾考慮過命令超時,但這是客戶端功能。我更喜歡服務器上的東西。我不認爲有任何方法可以防止用戶直接設置隔離級別。 – 2013-03-11 15:54:53