1. 配置SQL Server监听地址与端口
要让SQL Server在Ubuntu上接受网络连接,需通过mssql-conf
工具修改其网络配置。默认情况下,SQL Server仅监听本地连接(127.0.0.1),需开启TCP/IP协议并设置监听地址。使用以下命令启用TCP/IP并设置端口(默认1433):
sudo /opt/mssql/bin/mssql-conf set network.tcpip-enable true
sudo /opt/mssql/bin/mssql-conf set network.tcpport 1433 # 若使用默认端口可省略
修改后重启SQL Server服务使配置生效:
sudo systemctl restart mssql-server
可通过sudo netstat -tuln | grep 1433
或sudo ss -tuln | grep 1433
验证SQL Server是否正在监听指定端口。
2. 配置Ubuntu系统网络接口(静态IP/动态IP)
若需远程连接,建议为Ubuntu配置静态IP地址(避免DHCP导致IP变动)。编辑Netplan配置文件(通常位于/etc/netplan/
目录,如00-installer-config.yaml
),添加以下内容(根据实际网络环境调整):
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # 网络接口名称(通过`ip addr`命令查看)
dhcp4: no
addresses: [192.168.1.100/24] # 静态IP地址及子网掩码
gateway4: 192.168.1.1 # 网关地址
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS服务器
应用配置:
sudo netplan apply
使用ip addr show enp0s3
验证IP配置是否正确。
3. 配置Ubuntu防火墙(UFW)
Ubuntu默认使用UFW作为防火墙,需允许SQL Server端口(默认1433)的入站流量。执行以下命令:
sudo ufw allow 1433/tcp # 允许TCP端口1433
sudo ufw enable # 启用UFW(若未启用)
sudo ufw status # 验证规则(应显示“1433/tcp ALLOW Anywhere”)
若使用iptables,可添加规则:
sudo iptables -A INPUT -p tcp --dport 1433 -j ACCEPT
注意:生产环境中应限制允许访问的IP地址范围(如sudo ufw allow from 192.168.1.0/24 to any port 1433/tcp
),避免开放给所有IP。
4. 配置SQL Server身份验证模式
默认情况下,SQL Server使用Windows身份验证,远程连接需启用SQL Server身份验证。通过SQL Server Management Studio(SSMS)或sqlcmd执行以下SQL命令:
USE [master]
GO
-- 创建SQL Server登录名
CREATE LOGIN [your_username] WITH PASSWORD = 'StrongPassword123!';
-- 创建数据库用户并关联登录名
USE [your_database]
GO
CREATE USER [your_username] FOR LOGIN [your_username];
-- 授予用户权限(如读写权限)
EXEC sp_addrolemember 'db_datareader', 'your_username';
EXEC sp_addrolemember 'db_datawriter', 'your_username';
确保密码强度符合要求(包含大小写字母、数字和特殊字符)。
5. 验证远程连接
从远程客户端使用SSMS或sqlcmd测试连接:
192.168.1.100
或your_server_hostname
),选择“SQL Server身份验证”,输入用户名和密码。sqlcmd -S 192.168.1.100,1433 -U your_username -P StrongPassword123!
若连接成功,说明网络配置正确。
6. 安全注意事项
mssql-conf
工具启用SSL/TLS加密,保护数据传输安全:sudo /opt/mssql/bin/mssql-conf set network.forceencryption true
sudo systemctl restart mssql-server