我有一個數據庫,並根據用戶我想他們使用存儲過程來看到不同的東西。我不希望他們能夠像select一樣執行直接的SQL命令。這可能嗎?我可以將SQL用戶限制爲僅存儲過程嗎?
回答
在過去,我不得不允許訪問一些程序,我會給登錄公共權利和數據庫映射。這將讓他們登錄,但不做任何事情。然後我給每個存儲過程選擇權。我很確定我不必做任何事情。
如果你有大量的存儲過程,那麼本文將幫助你創建這個特定角色/模式。
http://www.patrickkeisler.com/2012/10/grant-execute-permission-on-all-stored.html
我有從其他來源的反饋,SQL注入可能與此解決方案的問題。我可以避免這個問題嗎? –
這是關於執行權。與sql注入無關。這個話題在很多其他地方都有詳細討論,並且關於你如何開發你的存儲過程,而不是你如何賦予它們執行權限。 –
你需要從所有組中刪除該用戶就用GRANT你希望他們有存儲過程。
-- Syntax for SQL Server and Azure SQL Database
-- Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
| permission [ (column [ ,...n ]) ] [ ,...n ]
[ ON [ class :: ] securable ] TO principal [ ,...n ]
[ WITH GRANT OPTION ] [ AS principal ]
他爲什麼要將他們從「羣體」中刪除?他可能應該創建一個特定的**角色**。 –
我發現這是刪除所有權利的最快方法。從其他來源,SQL注入也許不是整齊,雖然 –
我已經得到的反饋可能是該解決方案的問題。我可以避免這個問題嗎? –
- 1. SQL Server僅將用戶限制到選定的存儲過程
- 2. 我可以將Google方向API僅限制到iOS應用嗎?
- 3. 如何將sql trace限制爲單個存儲過程?
- 4. 我可以在IntelliJ IDEA中編輯MS SQL存儲過程嗎?
- 5. 受限制的用戶輸入值存儲過程SQL
- 6. 我可以將類型限制爲僅包含可爲空的屬性嗎?
- 7. 我們可以從另一個存儲過程調用存儲過程嗎?
- 8. 我可以只將日期選擇器限制爲僅限3天嗎?
- 9. 我可以將方法參數限制爲僅限某些Enum成員嗎?
- 10. 我可以將列表傳遞給存儲過程嗎?
- 11. 我可以通過它佔用的內存量限制HashMap嗎?
- 12. 如何僅限用戶使用存儲過程?
- 13. 我可以將文件流式傳輸到SQL Server存儲過程嗎?
- 14. 在SQL Server中可以遞歸調用存儲過程嗎?
- 15. 我可以默認SQL存儲過程參數爲動態表達式嗎?
- 16. mysql用戶可以看到存儲過程嗎?
- 17. 我可以使用休眠條件調用存儲過程嗎?
- 18. Google的地理編碼限制 - 我可以存儲結果嗎?
- 19. 你可以加入存儲過程嗎?
- 20. 將SQL Server存儲過程轉換爲Oracle存儲過程
- 21. 將SQL Server存儲過程轉換爲PostgreSQL存儲過程
- 22. 我們可以從函數調用存儲過程嗎?
- 23. MySQL存儲過程:我可以直接用光標更新嗎?
- 24. 我可以在存儲過程的視圖中引用表嗎?
- 25. 我可以將可繪製的int ID存儲在XML中嗎?
- 26. 我可以在存儲過程中返回附加值以及SQL數據嗎?
- 27. 我可以使用Azure存儲地理複製作爲源嗎?
- 28. 我可以使用CSP將請求限制爲https:AND'self'嗎?
- 29. 是否可以將API限制爲僅限一個Web界面/應用程序?
- 30. 我們可以將SQL查詢存儲在XSL變量中嗎
是的,這是可能的。只能授予程序權限。 – jarlh
是的,只授予您希望他們使用的程序的執行權限。 –
之類的東西的權限等都是**高度依賴**在其RDBMS這是出於。請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。已添加標籤 –