使用具有安全性、可伸缩性和可用性的经行业验证的数据库引擎,为应用程序提供支持

已完成

此外,SQL Server 引擎内置了查询存储和智能查询处理功能,SQL Server 2022 延续了经过行业验证的数据库引擎的传统,在安全性、可伸缩性和可用性方面具有新功能。

在本单元中,你将了解 SQL Server 引擎中一些新的主要功能。 有关 SQL Server 2022 和引入的新功能的详细信息,请参阅 SQL Server 2022 中的新增功能

安全性

SQL Server 提供了丰富的功能,通过身份验证、加密和授权来保护数据。 SQL Server 2022 通过多项新功能(包括 SQL Server 账本、新的粒度固定服务器角色和严格的连接加密)增强了安全性。

SQL Server 账本

SQL Server 账本通过账本表、数据库账本和摘要管理的概念,为数据保护提供内置的篡改证据证明。

下图显示了 SQL Server 账本的流和组件:

Diagram showing the components and flow of Ledger for SQL Server.

使用 Transact-SQL (T-SQL) CREATE TABLE 语句创建为可更新账本表的任何表都将导致自动创建历史记录表和账本视图。 对账本表所做的所有修改都将记录在历史记录表中。 使用账本视图可以查看账本表中的所有数据,以及更改的历史记录。 账本历史记录包括任何更改的时间戳、更改类型和事务标识符。

数据库中有一系列称为数据库账本的系统表。 数据库账本包括所有账本表(即哪些 SQL 主体负责修改,以及具有关联事务标识符的更改哈希值)的审核详细信息。 此外,数据库账本包含区块链形式的加密哈希,用于验证账本表数据。 可以生成数据库摘要(包括引擎自动生成和存储的功能),用作对数据库账本的独立验证。

账本表也可以创建为仅追加表。 仅追加账本表将只允许对表使用 T-SQL INSERT 语句,但也使用数据库账本和摘要进行验证。

有关详细信息,请参阅账本文档

新的粒度固定服务器角色

SQL Server 提供固定服务器角色,以简化针对某些基于服务器的活动提供权限的工作。 例如,可将 SQL 主体分配给 sysadmin 固定服务器角色,这为主体提供了跨 SQL Server 实例的最广泛的权限集。

在 SQL Server 2022 中,添加了新的固定服务器角色,这些角色为特定任务提供了更精细的权限。 例如,新的固定服务器角色 ##MS_ServerPerformanceStateReader## 允许任何成员通过动态管理视图 (DMV) 查看关键性能指标,但与 sysadmin 角色的成员具有不相同的完全权限。 新的固定服务器角色提供了最低特权原则的概念。

有关详细信息,请参阅 SQL Server 2022 中引入的固定服务器级角色

严格的连接加密

SQL Server 2022 提供了一种更安全的方法,用于通过新版本的表格格式数据流 (TDS) 协议 (8.0) 加密连接和通信。 当应用程序使用新的连接字符串选项 encrypt=strict 时,TDS 8.0 用于与 SQL Server 2022 通信。

TDS 8.0 提供了以下好处:

  • TDS 登录通信在传输层系统 (TLS) 协议下受到完全保护。
  • 现在支持最新的 TLS 1.3 版本。
  • 应用程序必须指定用于加密的证书,而不是依赖于 TrustServerCertificate 选项。 此要求有助于防止中间人攻击。

有关详细信息,请参阅 TDS 8.0 和 TLS 1.3 支持

可伸缩性

SQL Server 具有经过验证的跟踪记录,无需更改应用程序即可提供可伸缩性。 SQL Server 2022 延续了这一传统,包括内存管理、tempdb 和统计信息维护的增强功能。

缓冲池并行扫描

数据库启动或关闭、创建新数据库、文件删除操作、备份或还原操作、Always On 故障转移事件、DBCC CHECKDB 和 DBCC 检查表、日志还原操作和其他内部操作(例如,检查点)需要对 SQL Server 缓冲池中的所有缓冲区进行完整扫描。

在使用大量 RAM(例如 1 TB 或更多)的系统上,扫描缓冲池中这些类型的操作可能需要很长时间,即使对于小型数据库也是如此。

默认情况下,对于具有大量 RAM 的系统,SQL Server 2022 现在使用多个线程来并行扫描缓冲池,以加快受影响操作的速度。

“解放双手”的 tempdb

使用临时表或表变量并发运行的工作负载可能会导致在 tempdb 中的系统页上以 PAGELATCH 等待的形式出现性能瓶颈。 用户通常会创建多个 tempdb 数据文件,以帮助缓解这些类型的闩锁等待。

SQL Server 2019 引入了增强功能,以进一步减少内置的 PFS 页和具有 tempdb 元数据优化的系统表页的闩锁并发问题。

SQL Server 2022 通过消除全局应用程序映射 (GAM) 系统页和共享全局应用程序映射 (SGAM) 系统页上的闩锁争用,削减了 tempdb 的剩余页闩锁等待,而无需更改应用程序或配置。

通过所有这些增强功能,用户应能够使用 SQL Server 安装程序中的默认值来配置 tempdb 文件,并且不再需要对 tempdb 系统页闩锁争用执行任何其他优化。

自动异步更新统计信息并发

如果启用了异步统计信息更新数据库选项,则 SQL Server 2022 现在可以使用 ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY 数据库配置选项,使后台请求更新统计信息等待低优先级队列上的架构修改 (Sch-M) 锁定,以避免在高并发情况下阻止其他会话。

可用性

对于任何业务关键型应用程序来说,确保 SQL Server 高度可用并保护数据免受灾难的影响非常重要。 SQL Server 2022 提供了可用性和灾难恢复的新功能。

包含的可用性组

Always On 可用性组使用副本为 SQL Server 数据库提供最高级别的可用性。 但是,只有用户数据库中的数据会同步到次要副本。 这意味着,管理员必须手动同步 SQL Server 实例对象,例如 SQL Server 代理作业、登录名和链接服务器定义。

SQL Server 2022 引入了包含的可用性组的概念。 现在,实例级对象与用户数据库一起复制到可用性组中包含的系统数据库中。 因此,在故障转移操作实例级别上,对象将自动可用,无需用户干预。

有关详细信息,请参阅什么是包含的可用性组

跨平台快照备份

快照备份提供了一种快速方法来备份大型 SQL Server 数据库,无需将 SQL Server 文件流式传输到备份文件。 SQL Server 在以前的版本中支持快照,但需要使用虚拟设备接口 (VDI) 的程序。 Windows 和 SQL Server 提供了使用卷快照服务 (VSS) 和 SQL 编写器服务支持快照备份的方法,每种方法使用 VDI。

SQL Server 2022 使用 ALTER DATABASE T-SQL 语句选项 SUSPEND_FOR_SNAPSHOT_BACKUP 为不使用 VDI 的快照备份提供内置支持。 执行此语句时,SQL Server 将挂起数据库和事务日志文件上的所有 I/O。 然后,用户可以使用存储提供程序快照技术从基础 SQL Server 数据库和事务日志文件创建一致的快照备份。 然后,通过将少量元数据信息备份到文件中来完成备份过程。 现在,这允许 I/O 继续处理数据库和事务日志文件。

可以使用 T-SQL RESTORE 语句还原快照备份,该语句指定元数据备份文件以及快照备份中的所有数据库和事务日志文件。

这个新方法允许跨 Windows 和 Linux 操作系统执行快照备份,而无需依赖于 VSS、SQL 编写器或自定义 VDI 应用程序。

有关详细信息,请参阅创建 Transact-SQL 快照备份

Intel QuickAssist 备份压缩

SQL Server 支持用于压缩备份的选项,在某些情况下,会为目标备份文件节省大量空间。 对于正在压缩备份文件的 SQL Server 中的线程,压缩过程可能需要大量的 CPU 周期。

SQL Server 2022 可以使用由 Intel QuickAssist 技术 (QAT) 支持的新压缩技术。 使用 Intel QuickAssist 压缩执行备份时,压缩处理将卸载到系统中的 Intel QuickAssist 硬件与核心 CPU。 这在压缩备份时为查询和应用程序提供了更多的 CPU 周期。

有关详细信息,请参阅集成加速和卸载

知识检查

1.

SQL Server 账本使用哪些功能提供数据完整性的防篡改证明?

2.

包含的可用性组为正常可用性组复制 SQL Server 2022 中哪些新类型的数据?