我們想要在我們的軟件中自由地構建SQL查詢(目前無法使用我們的軟件),但需要能夠鎖定它,以便用戶無法進行任何操作更改,只能從某些表中選擇數據。有沒有什麼好的指導來幫助我適當地鎖定它(即,最少的權限需要,建議禁止的關鍵字等)?或者我只需要繼續瀏覽網頁並吸收所有的SQL Server安全教程(針對系統本身,而不是編程),我發現了什麼?謝謝。需要幫助鎖定我的SQL Server代碼
回答
實現此目的最簡單的方法是創建一個服務帳戶,您將在系統中明確使用該動態類型的查詢。這個想法是,你使用了你所吸收的所有sql安全優勢,並在服務器上創建一個非常有限的低級別服務帳戶,並使用它來連接到數據庫。
我會建議給他們現在的SELECT訪問權限,然後逐漸釋放控制權限,如果它是您的用戶請求並在合理範圍內。
This鏈接將告訴您如何使用GRANT關鍵字爲特定的帳戶安全性提供登錄。
因此,您只需要在sql server中使用基於sql server的安全性創建新帳戶,而不是Windows。之後,只需使用上述鏈接中的信息將您想要的特定權限添加到該帳戶即可。然後將應用程序中的連接字符串切換到該特定功能的新帳戶。
圍繞這一點的任何其他基於編程的安全性都是額外的好處,但僅憑編程解決方案將不會像數據庫級別的訪問限制那樣具有防彈性。
我會去皮帶和牙套在這裏。
- 確保您的查詢工具是證明 針對SQL注入和不必要的 查詢。
- 不要直接對話 數據庫,使用服務器進程做 那。
- 創建一個SQL Server用戶,該用戶 只讀取了需要的表 的訪問權限。
- 對安全有偏見,如果你不是,請僱人。
HTH
這是一個偉大的基本提醒,謝謝。 – 2010-09-24 16:14:40
除了專門爲這些類型的操作創建一個最小特權帳戶(我喜歡我的所有用戶帳戶只對特定的SP EXEC並選擇一定效用的看法 - 這通常是它初學者),您還可以使用視圖來儘可能簡化數據並執行某些常見聯接。在用戶絕對必須提供某種過濾器的情況下,您可以使用存儲過程或內聯表值函數,如您不希望他們執行SELECT * FROM視圖的日期範圍。
他們只能訪問某些視圖並且沒有存儲過程。 – 2010-09-24 16:17:23
爲標記爲「with encryption」的SQL Server創建所有對象(視圖,表,過程,函數)。 例如: 創建過程BBBB加密 作爲 開始 ... end
之後,用戶無法查看源代碼,也無法修改它。
以前沒有考慮過這個。我不確定它能夠與我們目前的系統一起工作多麼好,但這可能是一大好處,並解決了我在我腦海中解決的其他幾個問題。 – 2010-09-24 16:16:02
這適用於從2000到2008 R2的所有版本的MS SQL Server。您可以像平常一樣開發和調試代碼,並僅在數據庫的發行版中使用加密。它可以100%保護你的代碼,防止那些無法看到加密對象的DDL的用戶,也不會改變你在SQL服務器上的工作。 – Kutsoff 2010-09-26 11:59:13
- 1. 需要幫助的SQL Server
- 2. 需要SQL Server幫助
- 3. SQL代碼需要幫助理解
- 4. SQL Server的支點代碼需要幫助
- 5. 需要幫助調試我的代碼
- 6. 需要Android代碼幫助
- 7. 需要javascript代碼幫助
- 8. 需要xslt代碼幫助
- 9. C代碼需要幫助
- 10. SQL Server 2008 - 需要更新SQL幫助
- 11. 需要死鎖幫助
- 12. 需要幫助我修改此代碼
- 13. 我需要python代碼分析幫助
- 14. 我需要幫助理解java代碼
- 15. 需要SQL Server 2008的幫助
- 16. PHP的SQL Server需要幫助
- 17. STI幫助。需要幫助重構我現有的代碼
- 18. 需要幫助鎖定使用VBA
- 19. SQL幫助需要
- 20. 需要幫助SQL
- 21. 需要幫助在SQL Server中查詢
- 22. 需要幫助SQL Server 2008中
- 23. 需要幫助優化SQL Server查詢
- 24. 在查詢SQL Server時需要幫助
- 25. 需要SQL Server查詢幫助
- 26. 需要幫助寫入SQL Server CE表
- 27. SQL Server查詢幫助需要
- 28. 需要SQL Server報告幫助
- 29. SQL幫助需要
- 30. 需要SQL幫助
我很喜歡這個想法。用我們的系統設置的方式來實現會有點棘手,但應該是可行的。 – 2010-09-24 16:13:28