100
A
回答
156
的SQL Server 2008及以上:
/* CREATE A NEW ROLE */
CREATE ROLE db_executor
/* GRANT EXECUTE TO THE ROLE */
GRANT EXECUTE TO db_executor
對於剛剛用戶(不是角色):
USE [DBName]
GO
GRANT EXECUTE TO [user]
60
SQL Server 2005中引入的能力grant database execute permissions到數據庫原理,正如你所描述的那樣:
GRANT EXECUTE TO [MyDomain\MyUser]
這將授予數據庫作用域的權限,這隱含地包含所有模式中的所有存儲過程。這意味着您不必爲每個存儲過程明確授予權限。
您還可以通過granting schema execute permissions,如果你想更細緻的限制:
GRANT EXECUTE ON SCHEMA ::dbo TO [MyDomain\MyUser]
+4
偉大的能夠做到這一點的具體模式,所以避免sys上的權限 – RemarkLima 2014-03-13 15:30:46
8
除了上述問題的答案,我想補充:
你可能要授予這取而代之的是角色,然後將角色分配給用戶。
CREATE ROLE [myAppRights]
GRANT EXECUTE TO [myAppRights]
這樣做。
如果你想這樣做在架構級別:
GRANT EXECUTE ON SCHEMA ::dbo TO [myAppRights]
也可以(在這個例子中,角色myAppRights
將執行對模式dbo
的所有元素權利之後)。
這樣,您只需執行一次操作,如果您稍後需要更改,就可以方便地向用戶分配/撤銷所有相關的應用程序權限 - 如果您想創建更復雜的訪問配置文件,此功能尤其有用。
相關問題
- 1. 授予數據庫中所有存儲過程的用戶執行權限?
- 2. 授予對某個數據庫中所有存儲過程的執行權限
- 3. 是否授予ALTER暗示授予執行一個SQL Server存儲過程
- 4. 授予SQL存儲過程權限執行權限
- 5. 授予存儲過程的權限
- 6. 授予執行存儲過程沒有SELECT權限的基礎表
- 7. 授予權限存儲過程
- 8. t-sql創建用戶並授予執行存儲過程的權限
- 9. 如何將執行權限授予特定模式中的存儲過程?
- 10. SP授予執行
- 11. 用戶擁有存儲過程甚至授予後的權限給所有DB項目執行存儲過程時
- 12. AH01626:要求所有授予的授權結果:授予
- 13. 向用戶授予存儲過程的權限
- 14. 只授予用戶的存儲過程權限
- 15. 授予用戶對存儲過程的權限
- 16. 在SQL Server 2000中授予對存儲過程的選擇權
- 17. Oracle授予執行權限
- 18. documentdb在集合的所有分區中執行存儲過程?
- 19. 執行存儲過程OnClick
- 20. 執行存儲過程
- 21. 執行SQL存儲過程
- 22. 執行存儲過程
- 23. Rails執行存儲過程
- 24. 當執行存儲過程
- 25. 執行存儲過程
- 26. 存儲過程沒有得到執行
- 27. MySQL授予所有命令?
- 28. 在存儲過程中執行帶參數的存儲過程
- 29. 執行另一個存儲過程的存儲過程
- 30. 存儲過程出站網關未能執行有效的存儲過程
+1 plus:它甚至授予未來存儲過程的EXECUTE權限,例如,那些還沒有在你的數據庫中 - 但將在稍後創建。 – 2012-02-17 05:57:52
我認爲值得注意的是你的用戶可能必須在方括號內。這在我的用例中至少部分是因爲我的用戶有一個域名(即它有一個\字符)。 編輯:固定非轉義斜線字符 – PrinceTyke 2015-07-22 11:56:19
爲什麼不將用戶分配給db_ddladmin角色? 「db_ddladmin固定數據庫角色的成員可以在數據庫中運行任何數據定義語言(DDL)命令。」 - 見[這裏](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles) – 2018-02-08 10:41:07