确定对话安全性类型
会话所用的对话安全性类型取决于 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 使用完全安全性。对于此对话,将对实例外部的消息进行加密。代表起始服务的操作在目标数据库中以指定的用户身份运行。