安装 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 访问。
隔离服务
隔离服务可降低一项遭到入侵的服务可能被用来危害其他服务的风险。 要隔离服务,请考虑以下准则:
- 在单独的SQL Server帐户下运行Windows服务。 请尽可能使用单独的低权限Windows服务的每个本地用户帐户SQL Server用户帐户。 有关详细信息,请参阅 配置 Windows 服务帐户和权限预览版本升级问题的解答。
配置安全的文件系统
使用正确的文件系统可提高安全性。 对于SQL Server安装,应执行以下任务:
使用 NT 文件系统 (NTFS) 或复原文件系统 (ReFS) 。 NTFS 和 ReFS 是建议用于安装 SQL Server 的文件系统,因为它比 FAT32 文件系统更稳定且可恢复。 NTFS 或 ReFS 还启用了安全选项,例如文件和目录访问控制列表 (ACL)。 NTFS 还支持加密文件系统 (EFS) - 文件加密。 安装期间,SQL Server在检测到 NTFS 时,对注册表项和文件设置相应的 ACL。 不应对这些权限做任何更改。 将来的版本SQL Server可能不支持在具有 FAT 文件系统的计算机上进行安装。
注意
如果使用 EFS,数据库文件将在运行 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 服务帐户和权限预览版本升级问题的解答。
身份验证模式
需要Windows身份验证以连接到 SQL Server。
使用 Kerberos 身份验证。 有关详细信息,请参阅 为 Kerberos 连接注册服务主体名称。
强密码
始终为 sa 帐户分配强密码。
始终启用密码策略检查以检查密码强度和有效期。
请始终为所有登录名SQL Server强密码。
重要
在设置SQL Server Express为 BUILTIN\Users 组添加登录名。 这允许计算机的所有经过身份验证的用户以公共角色SQL Server Express访问实例。 可以安全地删除 BUILTIN\Users 登录名,以数据库引擎具有单个登录名的计算机用户或具有登录名的其他Windows计算机用户的访问权限。