2016-03-01 82 views
0

有誰知道如何向MS SQL Server數據庫中的所有Service Broker對象(即合同,消息類型,遠程綁定,路由或服務)授予用戶權限嗎?授予所有服務代理對象的權限

我知道權限可以逐一授予對象。但我們有數十個,所以想看看有沒有什麼辦法可以減少麻煩。

我們不想使用「系統管理員」,因爲它太多了。

任何想法,將不勝感激。

回答

1

總之,沒有像db_datareader這樣的內置角色,它授予所有服務代理對象的所有權限。我的建議是創建一個數據庫角色,爲其授予必要的權限,然後將相應的用戶置於角色中。爲了引導這個,你可以在系統視圖上寫一些動態SQL,如'sys.service_queues`來爲你生成授權語句。例如:

select concat('grant receive on ', 
    quotename(schema_name(schema_id)), 
    '.', 
    quotename(object_name(object_id)), 
    ' to [YourRole]' 
) 
from sys.service_queues; 

未來,有紀律在創建時授予適當的權限。

+0

感謝Ben的細節。非常感激。標記爲答案。 – DIB