2013-07-26 24 views
0

我們正在爲我們的應用程序構建一個報告框架,這需要使用查詢生成器。最終,我們希望高級用戶能夠構建SELECT查詢以用於填充報表數據集。如何防止用戶通過查詢生成器運行UPDATE語句

數據集使用DataAdapter(MSSQL或SQLite)構建。是否有任何工具可以用來確保最終用戶構建的查詢只能是SELECT語句?

編輯:

正如上面提到的,我們的目標SQLite作爲我們的支持後端沒有DB的權限可以在這個平臺上設置的一個。

回答

1

如果查詢構建器是在內部完成的,並且查詢構建器返回字符串中的SQL語句,則可以通過查看Update語句keyworks或使用Regex解析它,如果您想讓用戶省卻麻煩創建更新查詢然後意識到他們無法運行它,那麼您應該考慮在創建查詢時不斷檢查它。或者,您可以使用第三方查詢構建器,如下:http://www.activequerybuilder.com/,不幸的是我相信它不支持除Select語句之外的其他任何內容,但它可能值得拍攝。

3

對數據庫設置正確的權限。這是最好的解決方案。

編輯:

對於SQLLite您可以設置只讀權限的文件 - 在文件系統中。

0

我認爲你需要做的就是包裹的QueryBuilder和只露出permited操作。 我不好意思考慮另一種方式,比如讓用戶構造一個查詢,並在最後告訴他這是不允許的。

相關問題