授予所有服务代理对象的权限
问题描述:
有谁知道如何向MS SQL Server数据库中的所有Service Broker对象(即合同,消息类型,远程绑定,路由或服务)授予用户权限吗?授予所有服务代理对象的权限
我知道权限可以逐一授予对象。但我们有数十个,所以想看看有没有什么办法可以减少麻烦。
我们不想使用“系统管理员”,因为它太多了。
任何想法,将不胜感激。
答
总之,没有像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