数据库镜像传输安全性

在 SQL Server 2005 及更高版本中,传输安全性涉及身份验证,或者还涉及数据库间交换的消息的加密。

对于数据库镜像,身份验证和加密在端点配置。有关镜像端点的信息,请参阅数据库镜像端点

身份验证

身份验证是验证用户是否具有其所声明的身份的过程。数据库镜像端点之间的连接需要进行身份验证。伙伴或见证服务器的连接请求(如果有)必须进行身份验证。

服务器实例使用的身份验证类型是其数据库镜像端点的属性。数据库镜像可以使用两种类型的传输安全性:Windows 身份验证和基于证书的身份验证。

Windows 身份验证支持两个身份验证协议:NT LAN Manager (NTLM) 和 Kerberos。数据库镜像端点可以配置为仅使用一个协议或在它们之间进行协商。默认情况下,使用的是协商。默认值 NEGOTIATE 允许端点使用 Windows 协商协议在 NTLM 和 Kerberos 之间进行选择。如果端点上指定了特定授权方法(NTLM 或 Kerberos),则只能使用该方法。如果另一端点配置为仅使用另一方法,则两个端点不能相互连接。有关这些方法的详细信息,请参阅端点身份验证类型

注意注意

有关此端点的信息,请参阅数据库镜像端点

数据库镜像连接使用 Windows 身份验证 [安全支持提供程序接口 (SSPI)] 或基于证书的身份验证。

Windows 身份验证

在 Windows 身份验证下,每个服务器实例使用运行进程的 Windows 用户帐户的 Windows 凭据登录到另一端。因此,Windows 身份验证要求 SQL Server 服务必须以受信任域中的域用户身份或作为网络服务运行。

为了对连接的两端进行身份验证,Windows 身份验证使用运行 SQL Server 实例的 Windows 用户帐户的凭据。因此,每个服务器实例的用户帐户必须具有登录到和将消息发送到每个其他服务器实例所需的权限。

有关使用 Windows 身份验证设置数据库镜像会话的示例,请参阅示例:使用 Windows 身份验证设置数据库镜像 (Transact-SQL)

证书

在某些情况下,例如服务器实例不在受信任域中或 SQL Server 作为本地服务运行时,Windows 身份验证不可用。在这种情况下,对连接请求进行身份验证需要使用证书,而不是用户凭据。每个服务器实例的镜像端点必须使用其自己的本地创建的证书进行配置。

创建证书时,将建立加密方法。有关详细信息,请参阅如何允许数据库镜像使用证书进行出站连接 (Transact-SQL)。请务必小心管理您使用的证书。

建立连接时,服务器实例使用其证书的私钥建立自己的标识。接收连接请求的服务器实例使用发送方证书的公钥对发送方的标识进行身份验证。例如,以下两个服务器实例:Server_A 和 Server_B。Server_A 先使用其私钥加密连接标头,然后再将连接请求发送到 Server_B。Server_B 使用 Server_A 证书的公钥解密连接标头。如果解密的标头是正确的,则 Server_B 就会知道该标头是 Server_A 加密的,从而连接通过了身份验证。如果解密的标头是错误的,则 Server_B 就会知道该连接请求不可靠,从而拒绝连接。

安全说明安全说明

仅安装受信任源的证书。

没有使用证书来配置数据库镜像安全性的任何自动方法。需要使用 Transact-SQL。有关使用基于证书的身份验证设置数据库镜像会话的示例,请参阅示例:使用证书设置数据库镜像 (Transact-SQL)

数据加密

默认情况下,数据库镜像端点要求加密通过镜像连接发送的数据。在这种情况下,端点只能连接到也使用加密的端点。除非您可以保证您的网络是安全的,否则我们建议您对数据库镜像连接加密。但是,您可以禁用加密或支持加密(不是必需的)。如果禁用加密,则数据将永远不会加密,并且端点无法连接到要求加密的端点。如果支持加密,则只有另一端点也支持或要求加密时,数据才会加密。

注意注意

SQL Server Management Studio 创建的镜像端点可以使用必需加密或禁用加密的方式来创建。若要将加密设置为 SUPPORTED,请使用 ALTER ENDPOINT Transact-SQL 语句。有关详细信息,请参阅 ALTER ENDPOINT (Transact-SQL)

或者,您可以通过在 CREATE ENDPOINT 语句或 ALTER ENDPOINT 语句中为 ALGORITHM 选项指定下列值之一,控制端点所使用的加密算法:

ALGORITHM 值

说明

RC4

指定端点必须使用 RC4 算法。这是默认设置。

AES

指定端点必须使用 AES 算法。

AES RC4

指定两个端点将与优先使用 AES 算法的此端点协商加密算法。

RC4 AES

指定两个端点将与优先使用 RC4 算法的此端点协商加密算法。

如果连接端点同时指定了这两种算法,但顺序不同,则选择接受连接的端点。

注意注意

尽管 RC4 远远快于 AES,但它是一个相对较弱的算法,而 AES 是一个相对较强的算法。因此,建议使用 AES 算法。

有关用于指定加密的 Transact-SQL 语法的信息,请参阅 CREATE ENDPOINT (Transact-SQL)