【问题标题】:Grant permissions on all service broker objects授予对所有服务代理对象的权限
【发布时间】:2016-03-01 10:29:15
【问题描述】:

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

我知道可以对对象逐一授予权限。但是我们有几十个,所以想看看有没有什么聪明的方法可以减少麻烦。

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

任何想法都将不胜感激。

【问题讨论】:

    标签: sql sql-server tsql service service-broker


    【解决方案1】:

    简而言之,没有像db_datareader 这样的内置角色可以授予对所有服务代理对象的所有权限。我的建议是创建一个数据库角色,为其授予必要的权限,然后将适当的用户放入该角色。为了引导它,您可以在系统视图(如“sys.service_queues”)上编写一些动态 SQL 来为您生成授权语句。例如:

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

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

    【讨论】:

    • 感谢本提供详细信息。非常感激。标记为答案。
    猜你喜欢
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    相关资源
    最近更新 更多