确定对话安全模式类型
会话所用的对话安全模式类型取决于 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 使用完全安全模式。对于此对话,将对实例外部的消息进行加密。代表起始服务的操作在目标数据库中以指定的用户身份运行。
请参阅
任务
如何将起始服务配置为使用匿名对话安全模式 (Transact-SQL)
如何将起始服务配置为使用完全对话安全模式 (Transact-SQL)
如何将目标服务配置为使用匿名对话安全模式 (Transact-SQL)
如何将目标服务配置为使用完全对话安全模式 (Transact-SQL)
如何为本地服务配置权限 (Transact-SQL)