保护 SQL Server

适用于:SQL Server

可将保护 SQL Server 视为一系列步骤,它涉及四个方面:平台、身份验证、对象(包括数据)以及访问系统的应用程序。 本文将指导您完成创建和实现有效的安全性计划的过程。

你可以在 SQL Server 安全性最佳实践中找到有关 SQL Server 安全性的更多信息。 此类信息包括最佳实践指南和安全清单。 务必安装最新的服务包或累积更新

平台与网络安全性

SQL Server 的平台包括物理硬件和将客户端连接到数据库服务器的联网系统,以及用于处理数据库请求的二进制文件。

物理安全性

物理安全性的最佳实践是严格限制对物理服务器和硬件组件的接触。 例如,将数据库服务器硬件和联网设备放在限制进入的上锁房间。 此外,还可通过将备份介质存储在安全的现场外位置,限制对其接触。

实现物理网络安全首先要防止未经授权的用户访问网络。 有关详细信息,请参阅 SQL Server 安全最佳做法 - 基础设施威胁

操作系统安全性

操作系统 Service Pack 和升级包含重要的安全性增强功能。 通过数据库应用程序对所有更新和升级进行测试后,再将它们应用到操作系统。

防火墙也提供了实现安全性的有效方式。 从逻辑上讲,防火墙是网络通信的隔离者或限制者,可配置为执行您组织的数据安全性策略。 如果使用防火墙,则可通过提供一个检查点(在此可着重关注安全措施)来增强操作系统级别的安全性。 下表包含有关如何将 SQL Server 与防火墙一起使用的详细信息。

有关以下方面的信息 请参阅
为使用 SQL Server 配置防火墙 为数据库引擎访问配置 Windows 防火墙
为使用 Integration Services 配置防火墙 Integration Services 服务(SSIS 服务)
为使用 Analysis Services 配置防火墙 配置 Windows 防火墙以允许 Analysis Services 访问
打开防火墙上的特定端口以便启用对 SQL Server 的访问 配置 Windows 防火墙以允许 SQL Server 访问
通过使用渠道绑定和服务绑定,配置对针对验证的扩展保护的支持 使用扩展保护连接到数据库引擎

减少外围应用是一项安全措施,它涉及停止或禁用未使用的组件。 减少外围应用后,对系统带来潜在攻击的途径也会减少,从而有助于提高安全性。 限制 SQL Server 外围应用的关键在于通过仅向服务和用户授予适当的权限来运行具有“最小特权”的必需服务。 下表包含有关服务和系统访问的详细信息。

有关以下方面的信息 请参阅
SQL Server 必需的服务 配置 Windows 服务帐户和权限

如果 SQL Server 系统使用了 Internet Information Services (IIS),则还需要采取其他步骤来帮助确保平台外围的安全。 下表包含有关 SQL Server 和 Internet Information Services 的信息。

有关以下方面的信息 请参阅
使用 SQL Server Compact 时的 IIS 安全性 保护 SQL Server - 操作系统安全性
报告服务身份验证 Reporting Services 中的身份验证
SQL Server Compact 和 IIS 访问 Internet Information Services 安全性流程图

SQL Server 操作系统文件安全性

SQL Server 使用操作系统文件进行操作和数据存储。 文件安全性的最佳实践要求您限制对这些文件的访问。 下表包含有关这些文件的信息。

有关以下方面的信息 请参阅
SQL Server 程序文件 SQL Server 的默认实例和命名实例的文件位置

SQL Server 服务包和升级提供了增强的安全性。 若要确定可用于 SQL Server 的最新服务包,请访问 SQL Server 网站。

您可以使用以下脚本来确定系统上安装的 Service Pack。

SELECT CONVERT(char(20), SERVERPROPERTY('productlevel'));  

主体与数据库对象安全性

主体是获得了 SQL Server 访问权限的个体、组和进程。 “安全对象”是服务器、数据库和数据库包含的对象。 每个主体都拥有一系列权限,可对这些权限进行配置,帮助减少 SQL Server 外围应用。 下表包含有关主体和安全对象的信息。

有关以下方面的信息 请参阅
服务器和数据库用户、角色与进程 主体(数据库引擎)
服务器和数据库对象安全性 安全对象
SQL Server 安全性层次结构 权限层次结构(数据库引擎)

加密和证书

加密并不解决访问控制问题。 不过,它可以通过限制数据丢失来增强安全性,即使在访问控制失效的罕见情况下也能如此。 例如,在数据库主机配置有误且恶意用户获取了敏感数据(如信用卡号)的情况下,如果被盗信息已加密,则此信息将毫无用处。 下表包含有关 SQL Server 中的加密的详细信息。

有关以下方面的信息 请参阅
SQL Server 中的加密层次结构 加密层次结构
实现安全连接 启用数据库引擎的加密连接(SQL Server 配置管理器)
加密函数 加密函数 (Transact-SQL)

证书是在两个服务器之间共享的软件“密钥”,使用证书后,可以通过严格的身份验证实现安全通信。 您可以在 SQL Server 中创建和使用证书,以增强对象和连接的安全性。 下表包含有关如何在 SQL Server 中使用证书的信息。

有关以下方面的信息 请参阅
创建由 SQL Server 使用的证书 CREATE CERTIFICATE (Transact-SQL)
为数据库镜像使用证书 使用数据库镜像终结点证书 (Transact-SQL)

应用程序安全性

客户端程序

SQL Server 安全性最佳实践包括编写安全客户端应用程序。 有关如何在网络层保护客户端应用程序安全的详细信息,请参阅 Client Network Configuration

Windows Defender 应用程序控制 (WDAC)

Windows Defender 应用程序控制 (WDAC) 可防止未经授权的代码执行。 WDAC 是降低基于可执行文件的恶意软件威胁的有效方法。 有关详细信息,请参阅 Windows Defender 应用程序控制文档。

SQL Server 安全性工具、实用工具、视图和函数

SQL Server 提供了可用来配置和管理安全性的工具、实用工具、视图和函数。

SQL Server 安全性工具和实用工具

下表包含有关可用于配置和管理安全性的 SQL Server 工具和实用工具的信息。

有关以下方面的信息 请参阅
连接、配置和控制 SQL Server 使用 SQL Server Management Studio
连接到 SQL Server 并在命令提示符下运行查询 sqlcmd 实用工具
SQL Server 的网络配置和控制 SQL Server 配置管理器
使用基于策略的管理启用和禁用功能 使用基于策略的管理来管理服务器
操作报表服务器的对称密钥 rskeymgmt 实用工具 (SSRS)

SQL Server 安全性目录视图和函数

数据库引擎在若干视图和函数(已针对性能和效用进行了优化)中显示安全信息。 下表包含有关安全性视图和函数的信息。

有关以下方面的信息 请参阅
SQL Server 安全性目录视图,可返回有关数据库级别、服务器级别权限、主体、角色等方面的信息。 此外,还有提供加密密钥、证书和凭据相关信息的目录视图。 安全性目录视图 (Transact-SQL)
SQL Server 安全性函数,返回有关当前用户、权限和架构的信息。 安全函数 (Transact-SQL)
SQL Server 安全性动态管理视图。 与安全性相关的动态管理视图和函数 (Transact-SQL)