我在處理應用程序,其中某些SQL Server的查詢將被限制在基於一組特定身份的用戶存儲中複雜的查詢。ASP.NET/SQL服務器:SQL Server數據庫
這似乎是有道理的存儲應用程序數據庫,在那裏我可以將其與組名稱關聯起來這些,很容易添加/未來刪除。
的查詢是相當複雜的,但並採取了一些參數如jQuery,並從日期字段,當前用戶名等,所以查詢構造,如:
MyQuery = "SELECT * FROM Table1 WHERE Username = '" + System...CurrentUser +"' AND Somedate > '" + from.text +'";
現在我不知道該如何拿這個代碼並在數據庫中創建一個等價的表示。我想過使用特定的標識符,例如%USERNAME%,%FROMDATE%等,然後使用字符串替換函數,但我不確定這會帶出單引號。
會像Replace("%USERNAME%", "'" + CurrentUser + "'")
工作?
任何更好的主意!
兩件事情:
- 限制基於用戶組的一些疑問。
- 相當容易添加/刪除在未來/編輯查詢(沒有硬編碼到C#?)
愚蠢的問題:不能你剛纔創建的使用標準SQL Server功能的存儲過程(包括參數),以及手柄的權限? – 2011-05-10 16:34:56
marc_s - 這應該是一個答案。我想自己發佈這個答案,但是你打敗了我。如果我已經將它作爲評論發佈,那麼我會覺得自己像一個腳跟。此外,我會包含一個鏈接到OWASP關於SQL注入的文章。發佈作爲答案,我會投票。 – David 2011-05-10 16:41:31
http://databases.about.com/od/sqlserver/a/storedprocedure.htm和https://www.owasp.org/index.php/SQL_injection – David 2011-05-10 16:44:17