在SQL Server 2012中有沒有辦法在一個模式中授予執行所有存儲過程的權限? 有關其他信息,這些存儲過程只是做一個選擇。如何將執行權限授予特定模式中的存儲過程?
8
A
回答
14
嘗試類似的東西。它創建一個新角色並授予對模式的執行權限。
CREATE ROLE db_executor
GRANT EXECUTE ON SCHEMA::schema_name TO db_executor
exec sp_addrolemember 'db_executor', 'Username'
替換schema_name
與您的架構和'Username'
與您的用戶。
1
爲了授予一個模式中所有存儲過程的執行權限,通過 查詢@szymon就足夠了。
下面的查詢將爲所選用戶授予過程的執行權限。 只要用戶已經存在。
GRANT EXECUTE ON OBJECT :: [模式] [過程名] [使用] AS [模式]。 GO
1
我建議你做什麼Szymon建議,因爲它更優雅的解決方案,但要避免您可以執行這樣的查詢創建角色,複製結果到單獨的查詢編輯器,並同時執行所有。
這將產生GRANT執行語句在特定的模式,你擁有所有的存儲過程
DECLARE @SchemaName varchar(20)
DECLARE @UserName varchar(20)
SET @SchemaName = 'dbo'
SET @UserName = 'user_name'
select 'GRANT EXECUTE ON OBJECT::' + @SchemaName + '.' + P.name + ' to ' + @UserName
from sys.procedures P
inner join sys.schemas S on P.schema_id = S.schema_id
where S.name = @SchemaName
+0
但是如果創建新的存儲過程會怎樣?我認爲你需要爲新創建的存儲過程授予exec權限? –
相關問題
- 1. 授予SQL存儲過程權限執行權限
- 2. 授予存儲過程的權限
- 3. 授予權限存儲過程
- 4. 如何將角色訪問權限授予特定模式
- 5. 如何授予存儲過程權限以從其他模式中選擇?
- 6. 如何確定使用TSQL哪些角色被授予對特定存儲過程的執行權限?
- 7. Oracle授予執行權限
- 8. 如何授予特定模式的用戶權限?
- 9. 授予數據庫中所有存儲過程的用戶執行權限?
- 10. 授予對某個數據庫中所有存儲過程的執行權限
- 11. t-sql創建用戶並授予執行存儲過程的權限
- 12. 授予執行存儲過程沒有SELECT權限的基礎表
- 13. 如何授予在Oracle中授予權限的權限
- 14. 如何將文件權限授予組中的特定用戶?
- 15. 向用戶授予存儲過程的權限
- 16. 只授予用戶的存儲過程權限
- 17. 授予用戶對存儲過程的權限
- 18. 如何將git訪問權限授予我的OpenShift存儲庫?
- 19. 授予SQL Azure上的執行權限
- 20. 如何以編程方式將Cloud ML訪問權限授予存儲桶?
- 21. 授予Oracle授予權限
- 22. 權限需要授予執行
- 23. 執行權限授予不上表
- 24. 在特定模式上授予用戶DDL權限
- 25. 存儲過程權限和執行
- 26. 如何授予模式中任何表的刪除權限?
- 27. 如何授予discoverUserInfoWithUserRecordID權限?
- 28. 如何在MySQL中授予用戶特定的權限?
- 29. 是否授予ALTER暗示授予執行一個SQL Server存儲過程
- 30. 如何將權限授予SQL Server FileTable
是否有可能GRANT SCHEMA權限已經存在SQL Server角色,如擁有db_datareader? –
@FatihYarbaşı它應該是可能的,但我不確定內置角色。我建議不要擴展內置角色,最好是創建自己的自定義角色。 – Szymon