1. 简介
SQL Server可以允许使用者在远程或本地机器上访问,并可以使用不同的协议和端口进行连接。但是,使SQL Server开放在Internet上很危险,因此许多管理员都把SQL Server防火墙关掉了,这种做法非常不安全。
若要使SQL Server通过Internet进行访问,最好的方式是允许指定的客户端计算机通过防火墙访问SQL Server的指定端口。
2. SQL Server开启TCP/IP协议
在执行之前,确保已经安装了SQL Server。打开SQL Server Configuration Manager,单击SQL Server网络配置,如下图所示:
接下来执行以下步骤:
2.1 启用TCP/IP协议
单击SQL Server网络配置,选择TCP/IP,右键单击它,选择启动即可,如下图所示:
2.2 配置TCP/IP协议
1. 右键单击TCP/IP协议,选择“属性”,进入TCP/IP属性页面。
2. 默认情况下,TCP/IP协议使用1433端口。如果该端口受到攻击,则无法启动SQL Server。 因此更改TCP端口对于保护SQL Server非常关键。
3. 在TCP/IP属性页面上,选择IP地址选项卡,可以看到已配置IP地址列表。对于IP地址列表中的每个IP地址,需要建立新的TCP端口。
4. 单击下面的按钮,新建一个TCP端口,如下图所示:
接下来执行以下SQL Server脚本:
EXEC SP_CONFIGURE 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'remote access', 1;
RECONFIGURE;
GO
3. 防火墙中开放端口
现在已经成功启用TCP/IP协议,但是我们仍然需要在防火墙中打开端口以实现远程连接。
1. 打开计算机的“控制面板”;
2. 选择“Windows Defender 防火墙”;
3. 点击左侧的“高级设置”,如下图所示:
接下来执行以下步骤:
3.1 创建入站规则
在右侧任务栏中,单击“新建入站规则”:
接着执行以下步骤:
3.2 选择端口选项
选择“端口”选项,单击“下一步”:
3.3 配置特定端口值
选择“TCP”协议,输入要打开的端口。如果不想使用默认端口1433,则可以输入其他端口号,要确保与SQL Server配置的端口相同。可以根据实际情况灵活选择端口号,单击“下一步”:
3.4 允许连接以及选择连接类型
选择“允许连接”和“域”类型,单击“下一步”:
3.5 输入规则名称并保存
输入规则名称,如“SQL Server Remote Connection”,单击“完成”:
4. 管理员远程连接SQL Server
管理员我们已经设置了远程连接和开放端口。现在,我们可以在任何远程计算机上使用SQL Server Management Studio连接SQL Server。
接下来:
1. 打开SQL Server Management Studio
2. 在“服务器类型”下选择“数据库引擎”
3. 在“服务器名”处输入相应的计算机名或IP地址和端口号,例如:’192.168.1.1,1433’
4. 在“身份验证”下选择“SQL Server身份验证”,输入远程登录用于SQL Server的用户名和密码
5. 点击“连接”按钮,成功连接到远程SQL Server实例
5. 安全考虑
当启用TCP/IP网络协议并在Internet上运行SQL Server时,安全将变得非常关键。 以下是保护SQL Server的一些最佳实践:
5.1 限制SQL Server的网络访问权限
限制SQL Server机器通过防火墙仅允许特定的IP地址访问SQL Server。
5.2 加强SQL Server密码策略
强制要求SQL Server密码符合minimum_length、complexity等安全规则。
5.3 更新SQL Server版本并应用最新的补丁
Microsoft定期更新他们的SQL Server软件,并发布安全补丁,以确保数据库系统保持最新状态,这样才能避免发生安全威胁。
5.4 监控SQL Server何时受到攻击
使用SQL Server Profiler进行监控,以便在不正常的行为发生时做出反应并立即提供响应。
通过实施上述最佳安全实践,管理员可以保护SQL Server不被未经授权的访问和攻击。