保护 SQL Server

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

可以在 SQL Server 网站中找到有关 SQL Server 安全性的详细信息。 这包括最佳做法指南和安全清单。 此站点还包含最新的 Service Pack 信息和下载。

平台和网络安全

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

物理安全性

物理安全性的最佳做法严格限制对物理服务器和硬件组件的访问。 例如,对数据库服务器硬件和网络设备使用具有受限访问权限的锁定会议室。 此外,通过将备份介质存储在安全的场外位置来限制对备份介质的访问。

实现物理网络安全首先会阻止未经授权的用户离开网络。 下表包含有关网络安全信息的详细信息。

有关 请参阅
SQL Server Compact 和其他 SQL Server 版本的网络访问 SQL Server Compact Books Online 中的“配置和保护服务器环境”

操作系统安全性

操作系统的服务包及升级包括重要的安全增强功能。 在用数据库应用程序测试所有更新和升级后,将其应用于操作系统。

防火墙还提供实现安全性的有效方法。 从逻辑上讲,防火墙是网络流量的分隔符或限制符,可以将其配置为强制实施组织的数据安全策略。 如果使用防火墙,则通过提供一个可集中安全措施的扼流点来提高作系统级别的安全性。 下表包含有关如何将防火墙与 SQL Server 配合使用的详细信息。

有关 请参阅
配置防火墙以与 SQL Server 协作 为数据库引擎访问配置 Windows 防火墙
将防火墙配置为与 Integration Services 配合使用 为访问 SSIS 服务配置 Windows 防火墙
将防火墙配置为使用 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 Compact Books Online 中的“IIS 安全性”
Reporting Services 身份验证 Reporting Services 中的身份验证
SQL Server Compact 和 IIS 访问 SQL Server Compact Books Online 中的“Internet Information Services 安全流程图”

SQL Server操作系统文件安全性

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

有关 请参阅
SQL Server 程序文件 SQL Server 的默认实例和命名实例的文件位置

SQL Server Service Pack 和升级提供了增强的安全性。 若要确定可用于 SQL Server 的最新可用 Service Pack,请参阅 SQL Server 网站。

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

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

主体和数据库对象安全性

主体是授予对 SQL Server 访问权限的个人、组和进程。 “安全对象”是服务器、数据库和数据库包含的对象。 每个都有一组权限,可以配置以帮助减少 SQL Server 的攻击面。 下表包含有关主体和安全对象的信息。

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

加密和证书

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

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

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

有关 请参阅
创建供 SQL Server 使用的证书 创建证书(Transact-SQL)
将证书与数据库镜像配合使用 对数据库镜像终结点使用证书(Transact-SQL)

应用程序安全性

SQL Server 安全最佳做法包括编写安全客户端应用程序。

有关如何在网络层保护客户端应用程序安全的详细信息,请参阅 Client Network Configuration

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)

安装 SQL Server 的安全注意事项

SQL Server 数据库引擎和 Azure SQL 数据库安全中心