授予所有服务代理对象的权限

3

有没有人知道如何在MS SQL Server数据库中授予用户对所有服务代理对象(即合同、消息类型、远程绑定、路由或服务)的权限?

我知道可以逐个授予权限。但是我们有数十个这样的对象,所以想看看是否有任何聪明的方法来减少麻烦。

我们不想使用“sysadmin”,因为这太多了。

任何想法都将不胜感激。

1个回答

2
简而言之,在所有服务代理对象上没有像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;

今后,在创建时就有纪律地授予适当的权限。


感谢Ben提供的详细信息,非常感激。已标记为答案。 - DIB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接