贯通SQL Server 2008数据库系统开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 服务器网络配置

1.5.1 SQL Server配置管理器

安装完之后,要进行一些配置,才能使用MS SQL Server 2008的某些功能。使用SQL Server配置管理器可以对客户端和服务器端网络组件进行配置。

SQL Server配置管理器管理着客户端和服务器网络组件,包括SQL Server网络实用工具和SQL Server客户端网络实用工具,以及服务管理。可以配置服务器和客户端网络协议以及连接选项,其中还包括强制协议加密、查看别名属性或启用/禁用协议等功能。使用SQL Server 配置管理器可以创建或删除别名、更改使用协议的顺序或查看服务器别名的属性,其中包括:

(1)服务器别名——客户端所连接计算机的服务器别名。

(2)协议——用于配置条目的网络协议。

(3)连接参数——与用于网络协议配置的连接地址关联的参数。

SQL Server的服务器端网络组件能够配置SQL Server与客户的通信方式,配置服务器端SQL Server实例所支持的网络协议。只有在服务器上启用了某个协议,并在客户端也启用相同的协议,才能进行计算机之间的通信。安装SQL Server 2008时,自动安装了完整的网络库,但在默认的情况下仅启用一部分协议。

使用外围应用配置器工具启用正确协议后,通常不需要更改服务器网络连接。但是,如果需要重新配置服务器连接,以使SQL Server 侦听特定的网络协议、端口或管道,则可以使用SQL Server配置管理器。

1.5.2 配置服务器网络协议和网络库

为了增强安全性,SQL Server 2008将对某些新的安装禁用网络连接。对于所有的安装,将启用Shared Memory协议以允许本地到服务器的连接。根据安装情况和安装选项,SQL Server 浏览器服务可能会停止。

使用SQL Server外围应用配置器工具启动或启用服务和协议。安装之后,使用SQL Server配置管理器的SQL Server 2008网络配置节点来配置网络协议,使用SQL Server配置管理器的SQL Server 2008服务节点以将SQL Server浏览器服务配置为自动启动。表1-3列出了安装之后的配置。

表1-3 配置表

使用SQL Server配置管理器工具可以:

(1)启用SQL Server实例将要侦听的服务器协议。

(2)禁用不再需要的服务器协议。

(3)指定或更改每个数据库引擎都将侦听的IP地址、TCP/IP端口并命名管道。

(4)为所有已启用的服务器协议启用安全套接字层(SSL)加密。可对整个已启用的服务器协议打开或关闭加密功能,但不能针对特定的协议指定加密功能。若要使用SSL加密,必须安装有效的证书。

1.5.3 加密与SQL Server的连接

SQL Server 2008支持安全套接字层(SSL),并且与Internet协议安全(IPSec)兼容。

(1)安全套接字层(SSL)

SQL Server 2008可以使用安全套接字层(SSL)对通过网络在SQL Server 2008实例与客户端应用程序之间传输的数据进行加密。SSL加密在协议层执行,并可应用于除DB Library和MDAC 2.53客户端以外的所有SQL Server客户端。

客户端连接请求加密时,SSL可用于服务器验证。如果SQL Server实例在分配由公共证书颁发机构颁发的证书的计算机上运行,则计算机的标识和SQL Server实例的标识由受信任根颁发机构的证书链担保。这种服务器验证要求将运行客户端应用程序的计算机配置为信任服务器所用的证书的根颁发机构,也可以使用带有自签名的证书进行加密。SSL使用的加密级别是40位还是128位,取决于应用程序和数据库计算机上运行的Windows操作系统版本。

启用SSL加密将增强在SQL Server实例与应用程序之间通过网络传输的数据的安全性。但是,启用加密的确会降低性能。SQL Server与客户端应用程序之间的所有通信流量都使用SSL加密时,还需要进行以下额外处理:

(a)连接时需要进行额外的网络往返。

(b)从应用程序发送到SQL Server实例的数据包必须由客户端网络库加密,并由服务器端网络库解密。

(c)从SQL Server实例发送到应用程序的数据包必须由服务器端网络库加密,并由客户端网络库解密。

(2)配置SQL Server的SSL

在服务器的Windows证书存储区中安装一个证书。单击“开始”➔“所有程序”菜单,在Microsoft SQL Server 2008程序组中,指向“配置工具”,再单击“SQL Server配置管理器”,展开“SQL Server 2008网络配置”,右键单击MS SQLSERVER协议,再单击“属性”命令。在“Certificate”(证书)选项卡上,配置数据库引擎以使用该证书;在“Flags(标志)”选项卡上,查看或指定协议加密选项,如图1-16所示。

图1-16 “Flags”选项卡

如果数据库引擎的Force Encryption选项设置为“是”,则将加密所有客户端/服务器通信,并且拒绝无法支持加密的客户端的访问。如果数据库引擎的Force Encryption选项设置为“否”,则客户端应用程序可以请求加密,但不是必需的。

注意:更改Force Encryption 设置后,必须重新启动SQL Server。

始终要对客户端应用程序与SQL Server 2008连接时传输的凭据(在登录数据包中)进行加密。SQL Server将使用可信证书颁发机构颁发的证书(如果可用)。如果未安装可信证书,则在启动实例时SQL Server将生成自签名证书,并使用自签名证书对凭据进行加密。自签名证书有助于提高安全性,但它不提供身份验证,也不具有不可否认性。如果使用自签名证书,并且Force Encryption 选项的值设置为“是”,则将使用自签名证书对通过网络在SQL Server和客户端应用程序之间传输的所有数据进行加密。

注意:使用自签名证书加密的SSL连接不提供强安全性。它们容易在传输中途受到攻击。在生产环境中或在连接到Internet的服务器上,不应依赖使用自签名证书的SSL。

(3)证书要求

若要SQL Server 2008加载SSL证书,则该证书必须满足以下条件:

(a)证书必须位于本地计算机证书存储区中,或者位于当前用户证书存储区中。

(b)当前系统时间必须在证书Valid from和Valid to所指定的时间之内。

(c)该证书必须用于服务器身份验证。这要求使用该证书的增强型密钥用法属性指定服务器身份验证。

(d)必须使用AT_KEYEXCHANGE的KeySpec 选项创建该证书。

注意:证书的Subject属性必须指明公用名称(CN)与主机名或服务器完全限定的域名一样。