SQL Server 安装的安全注意事项

适用于SQL Server - 仅限 Windows

安全对于每个产品和每家企业都很重要。 遵循简单的最佳做法,可以避免很多安全漏洞。 本文讨论安装 SQL Server 前和安装 SQL Server 后应考虑的一些最佳安全做法。 这些功能的参考文章中包括了特定功能的安全指南。

安装 SQL Server 之前

设置服务器环境时,请遵循以下最佳做法:

增强物理安全性

物理和逻辑隔离是构成 SQL Server 安全的基础。 若要增强 SQL Server 安装的物理安全性,请执行以下任务:

  • 将服务器置于专门的房间,未经授权的人员不得入内。

  • 将数据库的宿主计算机置于受物理保护的场所,最好是上锁的机房,房中配备水灾检测和火灾检测监视系统或灭火系统。

  • 在公司 Intranet 的安全区域中安装数据库,并且不会将 SQL Server 实例直接连接到 Internet。

  • 定期备份所有数据,并将备份存储在远离工作现场的安全位置。

使用防火墙

防火墙对于协助确保 SQL Server 安装的安全十分重要。 如果遵循以下准则,防火墙最有效:

  • 在服务器和 Internet 之间放置防火墙。 启用防火墙。 如果防火墙处于关闭状态,请将其开启。 如果防火墙已打开,请不要将其关闭。

  • 将网络分成若干安全区域,区域之间用防火墙分隔。 阻止所有流量,然后有选择性地仅接受所需内容。

  • 在多层环境中,使用多个防火墙创建屏蔽子网。

  • 在 Windows 域中安装服务器时,请将内部防火墙配置为允许 Windows 身份验证。

  • 如果应用程序使用分布式事务处理,可能必须要将防火墙配置为允许 Microsoft 分布式事务处理协调器 (MS DTC) 在不同的 MS DTC 实例之间进行通信。 还必须配置防火墙,以允许流量在 MS DTC 和资源管理器(如 SQL Server)之间流动。

有关默认 Windows 防火墙设置的详细信息以及有关影响数据库引擎、Analysis Services、Reporting Services 和 Integration Services 的 TCP 端口的说明,请参阅配置 Windows 防火墙以允许 SQL Server 访问

隔离服务

隔离服务可降低一项遭到入侵的服务可能被用来危害其他服务的风险。 要隔离服务,请考虑以下准则:

  • 在不同的 Windows 帐户下运行各自的 SQL Server 服务。 对每个 SQL Server 服务,尽可能使用不同的低权限 Windows 或本地用户帐户。 有关详细信息,请参阅配置 Windows 服务帐户和权限

配置安全文件系统

使用正确的文件系统可提高安全性。 对于 SQL Server 安装,应执行以下几项任务:

使用 NT 文件系统 (NTFS) 或复原文件系统 (ReFS) 。 建议使用 NTFS 和 ReFS 文件系统安装 SQL Server,因为它比 FAT32 文件系统更稳定且可恢复。 NTFS 或 ReFS 还启用了安全选项,例如文件和目录访问控制列表 (ACL)。 NTFS 还支持加密文件系统 (EFS) - 文件加密。 安装期间,如果 SQL Server 检测到 NTFS,则会在注册表项和文件上设置适当的 ACL。 不应更改这些权限。 SQL Server 的未来版本可能不支持在具有 FAT 文件系统的计算机上进行安装。

注意

如果使用 EFS,则数据库文件在运行 SQL Server 的帐户的标识下进行加密。 只有此帐户才能解密文件。 如果必须更改运行 SQL Server 的帐户,则必须先在旧帐户下解密文件,然后在新服务帐户下将文件重新加密。

警告

通过 EFS 使用文件加密可能会导致 I/O 性能变慢,因为加密会导致异步 I/O 同步。 请参阅异步磁盘 I/O 在 Windows 上显示为同步。 相反,可以考虑使用 SQL Server 加密技术,例如 透明数据加密(TDE)Always Encrypted 和列级加密 加密函数

禁用 NetBIOS 和服务器消息块

外围网络中的服务器应禁用所有不必要的协议,包括 NetBIOS 和服务器消息块 (SMB)。

NetBIOS 使用以下端口:

  • UDP/137(NetBIOS 名称服务)
  • UDP/138(NetBIOS 数据报服务)
  • TCP/139(NetBIOS 会话服务)

SMB 使用以下端口:

  • TCP/139
  • TCP/445

Web 服务器和域名系统(DNS)服务器不需要 NetBIOS 或 SMB。 在这些服务器上,禁用这两个协议可以减轻由用户枚举带来的威胁。

在域控制器上安装 SQL Server

出于安全方面的考虑,我们建议不要将 SQL Server 安装在域控制器上。 SQL Server 安装程序不会阻止在作为域控制器的计算机上进行安装,但存在以下限制:

  • 在域控制器上,无法在本地服务帐户下运行 SQL Server 服务。

  • 将 SQL Server 安装到计算机上之后,无法将此计算机从域成员更改为域控制器。 必须先卸载 SQL Server ,然后才能将主机计算机更改为域控制器。

  • 将 SQL Server 安装到计算机上之后,无法将此计算机从域控制器更改为域成员。 必须先卸载 SQL Server ,然后才能将主机计算机更改为域成员。

  • 在群集节点用作域控制器的情况下,不支持 SQL Server 故障转移群集实例。

  • SQL Server 安装程序不能在只读域控制器上创建安全组或预配 SQL Server 服务帐户。 在这种情况下,安装将会失败。

安装 SQL Server 期间或之后

安装完成后,若要增强所安装的 SQL Server 软件的安全性,请遵循以下有关帐户和身份验证模式的最佳做法:

服务帐户

  • 使用尽可能低的权限运行 SQL Server 服务。

  • 将 SQL Server 服务与低特权 Windows 本地用户帐户或域用户帐户相关联。

  • 有关详细信息,请参阅配置 Windows 服务帐户和权限

身份验证模式

强密码

  • 始终为 sa 帐户分配强密码。
  • 始终启用密码策略检查以检查密码强度和有效期。
  • 始终对所有 SQL Server 登录名使用强密码。

重要

在安装 SQL Server Express 期间,将为组添加 BUILTIN\Users 登录名。 这可以使计算机的所有通过身份验证的用户作为 public 角色成员访问 SQL Server Express 实例。 可以安全地删除BUILTIN\Users登录名,以限制对数据库引擎的访问,仅允许具有个人登录名或加入其他具有登录名的Windows组的计算机用户访问。