温馨提示×

如何保障Linux SQL Server数据安全

小樊
40
2026-01-02 13:20:37
栏目: 云计算

Linux 上 SQL Server 数据安全实践清单

一 身份与访问控制

  • 使用最小权限原则:优先将用户加入固定数据库角色(如 db_datareader)或自定义角色,按需授予对象级权限,避免长期使用高特权账户。示例:将用户加入只读角色或创建“Sales”角色并授予对特定表的 SELECT/UPDATE/DELETE。
  • 正确区分登录(Login,服务器级主体)数据库用户(User,数据库级主体):登录用于连接实例,用户用于访问具体数据库,二者需一一映射。
  • 强化口令策略:SQL Server 默认口令策略要求至少8个字符、包含大小写字母/数字/符号中至少3类、最长128字符;在 SQL Server 2025(17.x)Linux 上可通过 adutilActive Directory 同步密码策略,或用 mssql-conf 手动配置自定义策略。
  • 容器场景:SQL Server 2019+ 容器默认以非根用户运行,2017 需显式构建非根镜像;如使用非根容器,需确保挂载卷对 mssql 用户(或 root 组)可读写,故障排查可临时添加 –cap-add SYS_PTRACE

二 传输与网络防护

  • 启用 TLS 加密保护客户端与服务器通信:证书需满足服务器身份验证(EKU=1.3.6.1.5.5.7.3.1)、密钥交换(AT_KEYEXCHANGE)、密钥用法(含 CERT_KEY_ENCIPHERMENT),且证书 CN 与服务器主机名或 FQDN 匹配;目录与文件权限建议:证书/私钥目录 700,证书 644,私钥 600,属主 mssql:mssql
  • 配置强制加密与协议:在 mssql.conf 中设置 network.tlscertnetwork.tlskeynetwork.tlsprotocols(如仅允许 TLS 1.2),必要时启用 network.forceencryption=1;重启服务生效。
  • 网络与端口最小化:仅开放必要端口(默认 1433),结合主机防火墙(如 firewalld/iptables)限制来源 IP;如需变更监听端口,应同步更新客户端连接串与防火墙规则。

三 数据静态与备份加密

  • 启用 透明数据加密(TDE):在 master 库创建数据库主密钥(DMK)服务器证书,在用户库创建**数据库加密密钥(DEK)**并绑定证书,最后执行 ALTER DATABASE … SET ENCRYPTION ON。启用后 tempdb 会自动加密;备份文件亦会被加密,恢复时必须提供相同证书或其备份。
  • 实施 备份加密:执行 BACKUP DATABASE 时使用 ENCRYPTION (ALGORITHM = AES_256, SERVER CERTIFICATE = …);务必单独、异地备份证书/私钥,否则备份将无法还原。

四 数据脱敏与细粒度访问控制

  • 使用 **动态数据遮罩(DDM)**对非必要暴露的敏感列(如 Email)进行部分遮蔽,开发/报表查询自动生效而无需改应用:
    • 示例:ALTER TABLE Person.EmailAddress ALTER COLUMN EmailAddress ADD MASKED WITH (FUNCTION = ‘email()’);
  • 通过 行级安全性(RLS)实现“按行可见”的业务隔离:编写内联表值函数作为安全谓词,创建安全策略绑定到表(可同时配置 FILTER 与 BLOCK 谓词),使不同用户仅能访问其权限范围内的数据行。

五 运维与监控加固

  • 持续更新与补丁:定期更新 LinuxSQL Server 补丁,修复已知漏洞;禁用或移除不必要的服务/端口,缩小攻击面。
  • 证书与密钥的备份与轮换:TDE/备份加密所用证书与私钥需安全备份并定期轮换;容器环境中,/var/opt/mssql/secrets 下的密钥/证书/计算机密钥需与宿主机挂载路径实施同等访问控制。
  • 审计与监控:定期审查 SQL Server 错误日志与系统日志,结合 IDS/IPS 与安全基线检查,及时发现异常登录与权限变更。

0