温馨提示×

SQL Server在Debian中的网络配置怎样设置

小樊
50
2025-10-06 03:10:38
栏目: 云计算

1. 安装SQL Server
在Debian上配置网络前,需先安装SQL Server。通过以下命令导入微软公钥、注册仓库并安装:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/debian/$(lsb_release -rs)/prod.list)"
sudo apt-get update
sudo apt-get install -y mssql-server

安装过程中需设置SQL Server系统管理员(SA)密码。

2. 启用TCP/IP网络协议
SQL Server默认可能未启用TCP/IP,需通过以下两种方式之一开启:

  • 方法一:使用mssql-conf工具(推荐)
    编辑SQL Server配置文件,启用TCP/IP并设置端口(默认1433):
    sudo nano /etc/sqlserver/sqlserver.conf
    
    找到[network] section,修改为:
    [network]
    tcpip = true
    tcpport = 1433
    
    保存后重启服务:
    sudo systemctl restart mssql-server
    
  • 方法二:通过sqlcmd命令
    连接到SQL Server实例,执行T-SQL命令启用TCP/IP:
    sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourStrong@Passw0rd>'
    
    在sqlcmd中运行:
    EXEC xp_instance_regwrite 
        @rootkey = 'HKEY_LOCAL_MACHINE',
        @key = 'Software\Microsoft\MSSQLServer\MSSQLServer',
        @value_name = 'TcpEnabled',
        @value = 1,
        @type = 'REG_DWORD';
    
    重启服务使更改生效。

3. 配置防火墙允许SQL Server流量
若系统启用ufw防火墙,需允许TCP 1433端口(SQL Server默认端口):

sudo ufw allow 1433/tcp
sudo ufw reload

若使用iptables,命令为:

sudo iptables -A INPUT -p tcp --dport 1433 -j ACCEPT

保存iptables规则(若未自动保存)。

4. 配置SQL Server允许远程连接
默认情况下,SQL Server仅允许本地连接,需通过以下步骤开启远程访问:

  • 步骤一:启用远程连接功能
    使用sqlcmd连接到实例,执行:
    EXEC sp_configure 'remote access', 1;
    RECONFIGURE;
    
  • 步骤二:确认身份验证模式
    确保SQL Server配置为混合模式身份验证(支持SQL Server登录和Windows登录)。可通过SSMS或sqlcmd查看/修改:
    EXEC xp_instance_regwrite 
        @rootkey = 'HKEY_LOCAL_MACHINE',
        @key = 'Software\Microsoft\MSSQLServer\MSSQLServer',
        @value_name = 'LoginMode',
        @value = 2,  -- 2表示混合模式
        @type = 'REG_DWORD';
    
    重启服务应用更改。

5. (可选)配置SQL Server Browser服务(实例名称连接)
若需通过实例名称(而非IP)连接,需启动SQL Server Browser服务:

sudo systemctl start sqlbrowser
sudo systemctl enable sqlbrowser  # 设置开机自启

同时,需允许UDP 1434端口(Browser服务端口)通过防火墙:

sudo ufw allow 1434/udp

此步骤仅在通过实例名称连接时需要。

6. 验证网络连接
使用sqlcmd工具从远程机器测试连接(替换<YourServerIP>和密码):

sqlcmd -S <YourServerIP>,1433 -U SA -P '<YourStrong@Passw0rd>'

若连接成功,将显示SQL Server命令提示符。

注意事项

  • 确保SQL Server服务持续运行:sudo systemctl status mssql-server
  • 若使用静态IP,需配置/etc/network/interfaces文件(参考Debian网络配置文档)。
  • 生产环境中,建议启用TLS加密以保护数据传输(参考Microsoft官方文档)。

0