【问题标题】:Service broker with only domain account仅具有域帐户的服务代理
【发布时间】:2012-07-11 13:10:56
【问题描述】:

我是 MS Sql 服务代理的新手。

我查看了几个教程。但我找不到答案。

我有分布式服务器,但幸运的是它们都在同一个域下。

有没有可能在不使用任何证书的情况下完成一个结构?

【问题讨论】:

    标签: sql sql-server service-broker


    【解决方案1】:

    是的。

    不要使用对话安全。确保您的所有BEGIN DIALOG 语句都使用ENCRYPTION = OFF 子句:

    BEGIN DIALOG @handle
      FROM SERVICE @from_service   
      TO SERVICE @to_service
      ON CONTRACT @contract
      WITH ENCRYPTION = OFF;       
    

    在每个目的地服务上授予SEND[public] 的权限:

    GRANT SEND ON SERVICE::<servicename> TO [public];
    

    ENDPOINTs 上使用WINDOWS 身份验证:

     CREATE ENDPOINT broker 
       STATE = STARTED
       AS TCP (LISTENER_PORT = 4022)
       FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS);
    

    向您的 SQL 服务使用的域帐户授予 CONNECT ENDPOINT 权限:

    GRANT CONNECT ON ENDPOINT::broker TO [domain\sqlserviceaccount];  
    

    (已编辑以更正 GRANT SEND 语法)

    【讨论】:

    • Remus,授予 CONNECT 权限;我认为域帐户必须是我的 SQL 服务使用的帐户。有没有办法使用另一个域帐户?
    【解决方案2】:

    Remus,你能用加密而不用主密钥加密来做这件事吗?我看到当我使用AUTHENTICATION = WINDOWS 时,我也可以使用ENCRYPTION = SUPPORTED。阅读 SB,有两种类型的加密(传输和消息)。

    这都在同一个内部网络上,但我宁愿不使消息的内容可读。我认为这只是意味着我需要传输安全性——我不知道这是否需要证书或主密钥加密。

    谢谢!

    【讨论】:

      猜你喜欢
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多