在现代应用程序中,数据库的远程访问是一个常见的需求。在使用 SQL Server 2019 时,将数据库服务器设置为允许远程访问需要进行多方面的配置,包括 SQL Server 的设置、Windows 防火墙的配置、以及云服务提供商(如 AWS、Azure、GCP 等)的安全组规则设置。本文将详细介绍如何完成这些配置,确保你的 SQL Server 数据库可以被外网访问。
一、配置 SQL Server 2019 以支持远程连接
-
SQL Server 配置管理器: 首先,打开 SQL Server 配置管理器,确保 SQL Server 实例正在运行。接下来,找到“SQL Server 网络配置”,然后选择你的 SQL Server 实例。
-
启用 TCP/IP: 在 TCP/IP 属性中,设置“状态”为“启用”,并在“IP 地址”选项卡下,确保“TCP 动态端口”为空,“TCP 端口”填写 1433(这是 SQL Server 的默认端口)。
sql
-- 示例显示配置
USE master;
GO
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'remote access', 1;
RECONFIGURE;
-
SQL Server 身份验证模式: 确保 SQL Server 配置为支持混合身份验证模式(SQL Server 和 Windows 身份验证)。可以通过 SQL Server Management Studio(SSMS)连接到 SQL Server,右键点击服务器实例,选择“属性”,在“安全性”选项卡中选择“SQL Server 和 Windows 身份验证模式”。
-
创建用户账号: 你需要为远程用户创建 SQL Server 登录。在 SSMS 中,展开“安全性”文件夹,右键点击“登录”,选择“新建登录”:
- 登录名:例如
remote_user
- 身份验证:选择 SQL Server 身份验证并设定密码
- 授予必要的权限,比如 db_datareader 或 db_datawriter
二、配置 Windows 防火墙
如果 SQL Server 正运行在 Windows 服务器上,需要允许 SQL Server 的访问端口(默认是 1433)通过防火墙。可以通过以下步骤设置:
- 打开“控制面板”,选择“系统和安全” > “Windows Defender 防火墙”。
- 点击“高级设置”,在“入站规则”中,选择“新建规则”。
- 选择“端口”,点击“下一步”,输入“特定本地端口”并填入 1433。
- 选择“允许连接”,然后为规则命名,完成设置。
三、设置云服务提供商的安全组规则
如果你的 SQL Server 部署在云平台上,如 AWS 或 Azure,还需要确保设置好安全组或网络安全规则。
AWS 示例:
- 登录 AWS 管理控制台,访问 EC2 控制台。
- 找到与 SQL Server 实例关联的安全组。
- 在“入站规则”中,添加一条规则:
- 类型:MySQL/Aurora(或自定义 TCP)
- 协议:TCP
- 端口范围:1433
- 来源:设置为允许访问的 IP 地址范围(如
0.0.0.0/0
允许所有 IP 访问,但不建议在生产环境中使用,最好限定 IP 范围)。
Azure 示例:
- 登录 Azure 门户,找到你的 SQL Server 实例。
- 在“设置”菜单中,选择“网络”。
- 在“入站端口规则”中,添加一条新的规则,设置相同的端口和 IP 范围。
四、测试连接
完成上述所有设置后,你可以使用 SQL Server Management Studio 从外部网络连接到你的 SQL Server 数据库,使用你创建的 remote_user
账号。
-- 连接字符串示例
Server=myServerAddress,1433;Database=myDataBase;User Id=remote_user;Password=myPassword;
结论
通过以上步骤,您应该能够成功配置 SQL Server 2019,以支持远程访问。在实际生产环境中,请务必考虑安全性,确保使用强密码,并限制远程访问的 IP 范围,以减少潜在的安全风险。