适用于:SQL Server - Linux
保护 Linux 上的 SQL Server 是一个持续的过程,因为 Linux 是异类且不断发展的作系统。 我们的目标是帮助客户在他们现有的基础上逐步提高安全性,并随着时间推移不断优化。 此页充当密钥做法和资源索引,用于保护 Linux 上的 SQL Server。
从安全的 Linux 系统开始
本文假定你在强化且安全的 Linux 系统上部署了 SQL Server。 安全措施因 Linux 分发而异。 有关详细信息,请参阅 SELinux 上的 SQL Server 入门。
安全做法因使用的 Linux 分发而异。 有关详细指导,请联系分发提供商,并查看其推荐的最佳做法。 还可以参考以下文档:
在部署到生产环境之前,始终在受控测试环境中验证所选的平台和配置。
应用 SQL Server 安全指南
Linux 上的 SQL Server 提供了一个可靠的安全框架,结合了多层保护。
根据最低特权原则创建帐户和数据库用户。
使用高级功能(如行级别安全性和动态数据掩码)进行精细访问控制。
文件系统安全性通过严格的所有权和权限
/var/opt/mssql强制实施,确保只有mssql用户和组具有适当的访问权限。对于企业集成,Active Directory 身份验证支持基于 Kerberos 的单一登录(SSO)、集中式密码策略和基于组的访问管理。
加密连接使用 TLS 保护传输中的数据,并提供服务器或客户端发起的加密选项,并支持符合行业标准的证书。
这些功能共同提供了保护 Linux 上的 SQL Server 部署的综合方法。 查看并实施以下关键资源的建议:
- Linux 上 SQL Server 的安全功能演练
- Linux 上的 SQL Server - 安全性和权限指南
- Linux 上的 SQL Server 的 Active Directory 身份验证
- 教程:使用 adutil 为 Linux 上的 SQL Server 配置 Active Directory 身份验证
- 加密与 Linux 上的 SQL Server 的连接
Linux 上的 SQL Server 审核
Linux 上的 SQL Server 支持内置的 SQL Server 审核功能,使你能够跟踪和记录服务器级和数据库级事件以实现合规性和安全监视。
常见最佳做法
- 定期更新 Linux 操作系统和 SQL Server。
- 专门将生产服务器用于 SQL Server 工作负载。
- 对帐户和服务应用 最低特权原则 。
- 最佳做法是禁用 SA 帐户。
有关 Windows 和 Linux 上的常见安全最佳做法,请参阅 SQL Server 安全最佳做法
采取最佳做法:禁用 SA 帐户
在安装后首次使用系统管理员 (sa) 帐户连接到 SQL Server 实例时,请务必执行这些步骤,然后立即禁用 sa 帐户,这是旨在确保安全性的一项最佳做法。
创建新的登录帐户,并将其设为 sysadmin 服务器角色的成员。
根据你使用的是容器还是非容器部署,启用 Windows 身份验证,并创建一个新的基于 Windows 的登录帐户,并将其添加到 sysadmin 服务器角色中。
否则,请使用 SQL Server 身份验证创建登录帐户,并将其添加到 sysadmin 服务器角色。
使用创建的新登录帐户连接 SQL Server 实例。
按照安全最佳做法的建议,禁用
sa帐户。
Linux 上 SQL Server 的安全限制
Linux 上的 SQL Server 当前具有以下限制:
从 Linux 上的 SQL Server 2025(17.x)开始,可以强制实施自定义密码策略。 有关详细信息,请参阅 在 Linux 上的 SQL Server 中为 SQL 登录名设置自定义密码策略。
在 Linux 和早期版本的 SQL Server 2022(16.x)中,我们提供了标准密码策略:
MUST_CHANGE是可以配置的唯一选项。CHECK_POLICY启用此选项后,只会强制实施 SQL Server 提供的默认策略,并且不应用 Active Directory 组策略中定义的 Windows 密码策略。如果使用 SQL Server 身份验证,则密码过期时间将硬编码为 90 天。 若要解决此问题,请考虑更改 ALTER LOGIN。
扩展密钥管理(EKM)仅受 SQL Server 2022(16.x) CU12 及更高版本中的 Azure Key Vault(AKV)支持,在早期版本中不可用。 Linux 操作系统上的 SQL Server 不支持第三方 EKM 供应商。
无法禁用 SQL Server 身份验证模式。
SQL Server 生成自己的自签名证书,用于加密连接。 可以将 SQL Server 配置为使用用户提供的 TLS 证书。
Linux 上的 SQL Server 部署不符合 FIPS。
保护 Linux 容器部署上的 SQL Server
有关保护 SQL Server 容器的信息,请参阅 安全 SQL Server Linux 容器。