有没有人知道如何在MS SQL Server数据库中授予用户对所有服务代理对象(即合同、消息类型、远程绑定、路由或服务)的权限?
我知道可以逐个授予权限。但是我们有数十个这样的对象,所以想看看是否有任何聪明的方法来减少麻烦。
我们不想使用“sysadmin”,因为这太多了。
任何想法都将不胜感激。
有没有人知道如何在MS SQL Server数据库中授予用户对所有服务代理对象(即合同、消息类型、远程绑定、路由或服务)的权限?
我知道可以逐个授予权限。但是我们有数十个这样的对象,所以想看看是否有任何聪明的方法来减少麻烦。
我们不想使用“sysadmin”,因为这太多了。
任何想法都将不胜感激。
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;
今后,在创建时就有纪律地授予适当的权限。