安装 SQL Server 的安全注意事项
适用于:SQL Server - 仅限 Windows
安全对于每个产品和每家企业都很重要。 遵循简单的最佳做法,可以避免很多安全漏洞。 本文讨论安装 SQL Server 前和安装 SQL Server 后应考虑的一些最佳安全做法。 这些功能的参考文章中包括了特定功能的安全指南。
安装 SQL Server
设置服务器环境时,请遵循以下最佳做法:
增强物理安全性
物理和逻辑隔离是构成 SQL Server 安全的基础。 若要增强 SQL Server 安装的物理安全性,请执行以下任务:
将服务器置于专门的房间,未经授权的人员不得入内。
将数据库的宿主计算机置于受物理保护的场所,最好是上锁的机房,房中配备水灾检测和火灾检测监视系统或灭火系统。
将数据库安装在公司 Intranet 的安全区域中,并且不得将 SQL Server 实例直接连接到 Internet。
定期备份所有数据,并将备份存储在远离工作现场的安全位置。
Use Firewalls
防火墙对于协助确保 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) - 文件加密。 在安装期间,如果检测到 NTFS, SQL Server 将对注册表项和文件设置相应的 ACL。 不应对这些权限做任何更改。 SQL Server 的未来版本可能不支持在具有 FAT 文件系统的计算机上进行安装。
注意
如果使用 EFS,则将在运行 SQL Server的帐户的标识下加密数据库文件。 只有该帐户才能解密文件。 如果必须更改运行 SQL Server 的帐户,则必须先在旧帐户下解密文件,然后在新服务帐户下将文件重新加密。
警告
通过 EFS 使用文件加密可能会导致 I/O 性能降低,因为加密会导致异步 I/O 变为同步。 请参阅异步磁盘 I/O 在 Windows 上显示为同步。 相反,可使用 SQL Server 加密技术,例如透明数据加密 (TDE)、Always Encrypted 和列级加密 T-SQL 函数。
禁用 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 服务帐户和权限预览版本升级问题的解答。
身份验证模式
连接 SQL Server时要求 Windows 身份验证。
使用 Kerberos 身份验证。 有关详细信息,请参阅 为 Kerberos 连接注册服务主体名称。
强密码
始终为 sa 帐户分配强密码。
始终启用密码策略检查以检查密码强度和有效期。
始终对所有 SQL Server 登录名使用强密码。
重要
在安装 SQL Server Express 过程中,为 BUILTIN\Users 组添加一个登录名。 这可以使计算机的所有通过身份验证的用户作为 public 角色成员访问 SQL Server Express 实例。 可以安全地删除 BUILTIN\Users 登录名,以限制 数据库引擎 对具有单独登录名或为使用此登录名的其他 Windows 组成员的计算机用户的访问。