确定对话安全性类型

会话所用的对话安全性类型取决于 BEGIN DIALOG CONVERSATION 语句中的选项、对服务的远程服务绑定的设置以及起始服务的所有者是否拥有证书。对于每个新对话,SQL Server 都将在 sys.remote_service_bindings 目录视图中查找目标服务的远程服务绑定。

下表列出了每种有效组合的对话安全性类型。请注意,如果存在远程服务绑定,则无论 BEGIN DIALOG CONVERSATION 语句中的设置如何,对话都会使用加密。

 

 

无远程服务绑定

远程服务绑定中 ANONYMOUS = ON

远程服务绑定中 ANONYMOUS = OFF

服务所有者拥有证书

ENCRYPTION = ON

对话失败

匿名安全性

完全安全性

服务所有者拥有证书

ENCRYPTION = OFF

无对话安全性

匿名安全性

完全安全性

服务所有者没有证书

ENCRYPTION = ON

对话失败

匿名安全性

对话失败

服务所有者没有证书

ENCRYPTION = OFF

无对话安全性

匿名安全性

对话失败

  • 对话失败
    SQL Server 没有用于提供请求的安全性所需的信息。Service Broker 将结束会话并将错误消息置于起始服务的队列中。

  • 无对话安全性
    SQL Server 不提供该对话的对话安全性。代表起始服务的操作在目标数据库中作为 public 运行。不为此对话加密消息。但是请注意,传输安全性可能加密网络上的消息。

  • 匿名安全性
    SQL Server 使用匿名安全性。对于此对话,将对实例外部的消息进行加密。由于目标服务无法验证起始服务的标识,因此代表起始服务的操作在目标数据库中作为 public 运行。

  • 完全安全性
    SQL Server 使用完全安全性。对于此对话,将对实例外部的消息进行加密。代表起始服务的操作在目标数据库中以指定的用户身份运行。