项目2.3 配置SQL Server 2019
任务2.3.1 查看SQL Server 2019服务
SQL Server在服务器后台需要运行不同的服务。完整安装的SQL Server包括多个方面的服务,其中一些服务可以使用SQL Server配置管理器或Windows系统中的“计算机管理”工具来进行管理。
1.使用“计算机管理”工具查看SQL Server的服务
其操作步骤如下。
1)右键单击(以下简称右击)桌面上的“我的电脑”图标,在弹出的快捷菜单中选择“管理”命令,会出现如图2-12所示的窗口。
图2-12 SQL Server服务管理
2)在该窗口中,可以通过“SQL Server配置管理器”节点中的“SQL Server服务”子节点查看Microsoft SQL Server 2019系统的所有服务及其运行状态。
在这个服务管理节点中,根据安装时选择的内容,可能含有Microsoft SQL Server 2019系统的几个服务。
SQL Server Integration Services,即集成服务?
SQL Full-text Filter Daemon Launcher,即全文搜索服务?
SQL Server,即数据库引擎服务?
SQL Server Analysis Services,即分析服务?
SQL Server Reporting Services,即报表服务?
SQL Server Browser,即SQL Server浏览器服务?
SQL Server代理,即SQL Server代理服务。
2.使用“SQL Server配置管理器”工具查看和控制SQL Server的服务
其操作步骤如下。
1)选择“开始”→“程序”→“Microsoft SQL Server 2019”→“配置工具”→“SQL Server 2019配置管理器”菜单命令,会出现如图2-13所示的窗口。
图2-13 SQL Server 2019的配置管理器
2)单击左窗格中的“SQL Server服务”,在右窗格中列出了当前可配置的SQL Server服务。
3)在右窗格中,右击要配置的“SQL Server(MSSQLSERVER)”服务,在弹出的快捷菜单中选择“属性”命令,会出现如图2-14所示的对话框。其中,“登录”选项卡用于为服务指定登录身份:“内置账户”是Windows绑定账户,其账户名和密码由Windows确定;“本账户”由SQL Server管理,需指定登录账户名和密码。
4)切换到“服务”选项卡,出现如图2-15所示的界面。该界面用于配置服务的手动、自动、已禁用三种启动模式。
5)切换到“FILESTREAM”选项卡,出现如图2-16所示的界面。该界面用于设置是否启用文件流形式存储数据。在SQL Server 2019中允许以独立文件的形式存放大数据对象,而不是像以前版本那样将所有数据都保存到数据文件中。
6)切换到“高级”选项卡,出现如图2-17所示的界面。该界面用于设置是否需要配置服务的启动错误报告、客户反馈报告,指定在服务启动时使用的参数,指定转储错误信息的文件夹等。
图2-14 为所选服务设置启动账户
图2-15 设置服务的启动模式
图2-16 为数据库引擎实例配置文件流
图2-17 为所选的服务设置高级选项
7)单击“确定”按钮使配置生效。
提示:如果在修改以上参数时服务正在运行,则必须在“登录”选项卡中单击“重新启动”按钮,使新的设置生效。
任务2.3.2 查看SQL Server 2019的网络配置
SQL Server可以通过Shared Memory(共享内存)、Named Pipes(命名管道)、TCP/IP这3种协议来配置独立的服务器和客户端。
通过“SQL Server配置管理器”工具,可以为每一个服务器实例独立设定网络配置,如图2-18所示;也可以为每个客户端进行配置,如图2-19所示。在配置客户端时,当有多种客户端协议要配置使用时,则客户端按一个特定的优先顺序来使用这些协议,默认优先顺序是Shared Memory→TCP/IP→Named Pipes。
图2-18 查看SQL Server实例的网络配置
图2-19 查看客户端协议
SQL Server的安装可以配置为本地连接和远程连接。在很多情况下,网络连接出现问题都是因为客户机网络配置不合理,或客户机网络配置与服务器配置不匹配引起的。
任务2.3.3 配置Shared Memory协议
Shared Memory协议用于本地连接。如果该协议被启用,任何本地用户都可以使用这些协议连接到服务器。如果不希望本地用户连接到服务器,可以禁用该协议。其方法是:在“SQL Server配置管理器”中,单击左窗格中的“SQL Server网络配置”节点,选择一个SQL Server实例的协议项。在右窗格中,右击“Shared Memory”协议,在弹出的快捷菜单中选择“禁用”命令,如图2-20所示。
任务2.3.4 配置Named Pipes协议
Named Pipes协议主要用于较早版本的Windows操作系统上所写程序的本地连接和远程连接。启用Named Pipes时,SQL Server 2019会使用Named Pipes网络库通过一个标准网络地址来通信:默认实例是\\.\pipe\sql\query,命名实例是\\.\pipe\MSSQL$instancename\sql\query。如果要启用或禁用该协议,可以通过配置这个协议的属性来改变其作用。其方法与禁用Shared Memory协议类似,这里不再重复。
图2-20 配置Shared Memory协议
任务2.3.5 配置静态TCP/IP
TCP/IP是通过本地或远程连接到SQL Server的首选协议。使用TCP/IP时,SQL Server会在指定的TCP端口和IP地址进行侦听以响应它的请求。在默认情况下,SQL Server会在所有的IP地址中侦听TCP端口1433,当然,SQL Server也会只侦听指定启用的IP地址。
将SQL Server实例配置为使用静态TCP/IP网络配置,其操作步骤如下。
1)在“SQL Server配置管理器”中,展开左窗格中的“SQL Server网络配置”节点,选择一个SQL Server实例的协议项,在右窗格中,右击“TCP/IP”协议,在弹出的快捷菜单中选择“属性”命令,出现如图2-21(左)所示的“协议”选项卡。
图2-21 设置侦听所有IP地址和TCP端口
2)切换到如图2-21(右)所示的“IP地址”选项卡后,可以看到在服务器上配置的IP地址清单(包括IPv4和IPv6)。单独的IP地址项是按数字排列的,例如:IP1,IP2,…,IP9,IPAll。当SQL Server侦听指定的IP地址时,需要对这些单独的IP地址项进行相应设置。当SQL Server侦听服务器上所有IP地址时,须设置“IPAll”项。
3)如果要使SQL Server侦听服务器上所有IP地址,应进行以下操作,如图2-21所示。
① 在“协议”选项卡中,将“全部侦听”设为“是”。
② 在“IP地址”选项卡中,为“IPAll”指定一个TCP侦听端口,默认是1433,要改变TCP侦听端口,输入TCP侦听端口即可。
4)如果想在一个指定的IP地址和TCP端口中启用侦听,应进行以下操作,如图2-22所示。
图2-22 设置侦听指定的IP地址和TCP端口
① 在“协议”选项卡中,将“全部侦听”设为“否”。
② 在“IP地址”选项卡中,将要侦听的IP地址的“活动”属性设为“是”,将“已启用”属性设为“是”。然后,为每一个IP地址分别输入相应的TCP端口。
③ 在“IP地址”选项卡中,将不需要侦听的IP地址的“活动”属性和“已启用”属性都设为“否”。
5)单击“确定”按钮。
提示:SQL Server可以侦听同一IP地址的多个端口,只需列出端口清单,端口之间用逗号分隔,如1433,1533,1534。在逗号和值之间不能有空格。
任务2.3.6 配置动态TCP/IP
将SQL Server实例配置为使用动态TCP/IP网络配置,其操作步骤如下。
前两步与任务2.3.5相同,略。
1)如果要使SQL Server侦听服务器上的所有IP地址的动态端口,应进行以下操作,如图2-23所示。
① 在“协议”选项卡中,将“全部侦听”设为“是”。
② 在“IP地址”选项卡中,在“IPAll”的“TCP动态端口”文本框中输入0。
图2-23 设置侦听所有IP地址的动态端口
2)如果想在一个指定的IP地址和TCP端口中启用侦听,应进行以下操作,如图2-24所示。
① 在“协议”选项卡中将“全部侦听”设为“否”。
② 在“IP地址”选项卡中将要侦听的IP地址的“活动”属性和“已启用”属性都设为“是”。
③ 在相应的“TCP动态端口”文本框中输入0。
④ 在“IP地址”选项卡中将不需要侦听的IP地址的“活动”属性和“已启用”属性都设为“否”。
任务2.3.7 解决SQL Server无法远程连接的问题
在使用SQL Server 2019远程连接时,如果不能正常连接,可以从以下三个方面依次检查并配置。
1.检查SQL数据库服务器中是否允许远程连接
在SQL2019服务器中,可以通过打开SQL Server 2019管理工具(SQL Server Management Studio,需额外安装)来完成这项检查。
图2-24 设置侦听指定IP地址的动态端口
其操作步骤如下。
1)选择“开始”→“程序”→“Microsoft SQL Server Tools”→“SQL Server Management Studio”菜单命令,打开如图2-25所示的窗口。
图2-25 SQL Server Management Studio窗口
2)右击服务器名,在弹出的快捷菜单中选择“属性”命令,出现“服务器属性”窗口。单击“选择页”列表框中的“连接”选项,出现如图2-26所示的界面。
图2-26 “服务器属性”窗口
3)检查是否勾选“允许远程连接到此服务器”复选框后,单击“确定”按钮。
4)重启SQL Server服务,若仍出现错误提醒对话框,那么继续做后面的检查。
2.配置SQL服务器(MSSQLServer)的相应协议
其操作步骤如下。
1)选择“开始”→“程序”→“Microsoft SQL Server 2019”→“SQL Server 2019配置管理器”菜单命令,打开“SQL Server Configuration Manager”窗口。
2)在该窗口中,展开“SQL Server网络配置”节点,单击“MSSQLSERVER的协议”选项,检查右边窗格中“TCP/IP”是否为“已启用”状态,如图2-27所示。
图2-27 检查SQL Server的网络配置
3)重启SQL Server服务,再次检查是否可以执行远程连接。若依然出现错误提醒对话框,则需要进一步检查操作系统的防火墙选项。
3.检查SQL服务器防火墙设置
在完成了前面两步操作后,若用户端计算机仍然无法远程连接到SQL服务器,则需要对SQL服务器防火墙进行重新配置。
其操作步骤如下。
1)查看SQL服务器上支持TCP/IP的端口。方法是:在图2-27中,右击“TCP/IP”选项,在弹出的快捷菜单中选择“属性”命令,会出现“TCP/IP属性”对话框,选择“IP地址”选项,如图2-28所示。由此可以看出,一般SQL服务器上支持TCP/IP的是1433端口。
图2-28 查看支持TCP/IP的端口
2)在防火墙的配置中设置支持TCP/IP,允许1433端口访问。如果服务器上运行的是Windows 10操作系统(其他微软操作系统的方法类似),则在“控制面板”中选择“Windows Defender防火墙”选项,会出现如图2-29所示的窗口。
图2-29 Windows防火墙设置
3)选择“高级设置”选项后,会打开“高级安全Windows Defender防火墙”窗口,然后,再单击左窗格中的“入站规则”选项,会出现如图2-30所示的窗口。
图2-30 Windows防火墙入站规则设置
4)选择图2-30右窗格中的“新建规则”选项,会出现如图2-31所示的“新建入站规则向导”对话框。
图2-31 选择入站规则类型
5)在该对话框中,选择“端口”选项后,单击“下一步”按钮,会出现如图2-32所示的对话框。
图2-32 选择协议和设置端口
6)在该对话框中勾选“特定本地端口”单选按钮,并在其右侧的文本框中输入“1433”,然后依次单击“下一步”按钮,根据向导完成“操作”“配置文件”等选项的设置,最后,在如图2-33所示的对话框中,输入名称“SQL Server Port”,单击“完成”按钮。
图2-33 设置新建规则的名称
完成了以上三个方面的操作,并确认每一步操作都正确后,重新启动计算机,之后,用户的SQL服务器即可支持远程连接。
任务2.3.8 设置本地客户端配置的安全性
默认情况下,客户端不使用安全套接字层(SSL),也不会尝试校验服务证书。可以强制执行协议加密、服务器证书校验或二者兼顾,其方法如下。
1)在“SQL Server配置管理器”中,右击左窗格中的“SQL Native Client 11.0配置”节点(见图2-27),在弹出的快捷菜单中选择“属性”命令,弹出如图2-34所示的对话框。
图2-34 设置本地客户端配置的安全性
2)如果在“强制协议加密”框中选择“是”,会强制客户端使用SSL,否则,会使用未加密的连接。
3)如果在“信任服务器证书”框中选择“是”,会强制客户端校验服务器证书,否则,会跳过对服务器证书的校验。
任务2.3.9 配置本地客户端协议的顺序
SQL Server提供了一项功能,即客户机可以选择使用一个协议,如果该协议不起作用,则再使用另一协议。本地连接的首选协议是Shared Memory协议,通过以下步骤可以改变其他协议的顺序。
1)在“SQL Server配置管理器”中,展开左窗格中的“SQL Native Client 11.0配置”节点,右击“客户端协议”,在弹出的快捷菜单中选择“属性”命令,出现“客户端协议 属性”对话框。
2)如图2-35所示,在该对话框中,可以进行以下操作。
图2-35 设置本地客户端协议的顺序
① 改变启用协议的顺序。选中要调整顺序的协议,单击“上移”或“下移”按钮。
② 禁用或启用协议。在“启动的协议”列表框中,选中一个协议,单击“左移”按钮即可禁用该协议。在“禁用的协议”列表框中,选中一个协议,单击“右移”按钮即可启用该协议。
③ 禁用或启用Shared Memory协议。取消勾选“启用Shared Memory协议”复选框可以为本地客户端连接禁用Shared Memory协议。反之,则为本地客户端连接启用Shared Memory协议。
3)单击“确定”按钮。