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