SQL Server 2022 中的新分类帐功能提供基于区块链的安全性,以确保数据不被篡改。

以加密方式保证数据完整性的能力对于在合作伙伴之间共享数据特别有用,允许组织向审计员或其他业务方证明 SQL Server 2022 数据库中的数据未被更改。
“所以这里的想法是,有一种基于区块链的加密技术,可以保证你无法在未经审计的情况下进行更改,并且不可见,就像绝对可见性一样,”长期担任微软 MVP 和 Sleek Technologies 首席技术官的 Leonard Lobel 解释道。
“即使你是一个强大的管理员,DBA 和系统管理员也无法以任何方式绕过它。”——Leonard Lobel,Microsoft MVP,Sleek Technologies 首席技术官

分类帐表架构(来源:Microsoft)
根据 Microsoft文档,分类帐的三个主要用例是:
- 简化审计: Ledger 向审计员提供数据完整性的加密证明。此证明可以帮助简化审计过程。
- 多方业务流程:区块链是多方网络的绝佳解决方案,参与网络的各方之间的信任度较低。
- 区块链的可信链下存储: Ledger 为区块链网络的链下存储提供数据完整性,有助于确保整个系统的完整数据信任。
Lobel 解释的分类帐适用于整个数据库和数据库表。对于后者,有两种类型的表:可更新表和仅附加表,他通过动手演示向座无虚席的听众解释了这些表。
可更新分类帐表通过历史表跟踪所有更改,而仅附加分类帐表通常用于基于事件的场景,其中事件应保持完整,不允许更新或删除。
“分类帐数据库是一个数据库,你说这个数据库中的所有表都是分类帐表,”Lobel 谈到整个数据库选项时说。“所以你可以拥有一个只有一些分类账表的数据库,这些特定的表会给你这些保证——这些防篡改保证——而其余的表不会。或者你可以在数据库级别指定它。和您根本无法在该数据库中创建一个不是分类帐表的表。”
所有这一切都是通过数据库摘要实现的,一个单一的散列,对于每个事务和以任何方式对数据库的每个更改,创建并生成一个重新散列数据库的事务。
“它将当前交易的哈希值滚动到先前的主数据库摘要哈希值中,这就是它创建区块链的意义。”
通常,SQL Server 的审计功能用于检测用户是否篡改了数据,以及维护表历史的临时功能。
但是,正如 Lobel 指出的那样,DBA 可以关闭审计和临时功能。
“你可以,比如,改变历史,”洛贝尔说。“我们都知道那有多危险,对吧?”
因此,为了确保篡改甚至超出高级管理员和 DBA 的能力范围,成熟的区块链是分布式的。
许多区块链实施具有高延迟和低吞吐量,Lobel 说,“但是对于分类账,他们设法做到的是,他们设法集中了这项技术,将其带入数据库引擎。”
这样做可以让分类账在不影响性能的情况下工作。根据文档:“分类帐和历史数据是透明管理的,无需任何应用程序更改即可提供保护。该功能以关系形式维护历史数据,以支持用于审计、取证和其他目的的 SQL 查询。它提供加密数据完整性保证同时保持 SQL 数据库的强大功能、灵活性和性能。”Lobel 使用动手演示来深入了解分类账的细节,这只是他 75 分钟演讲的重点之一。
Lobel 解释了对开发人员特别重要的其他新功能——用他的幻灯片展示以帮助解释要点——包括:
- 新的 IQP 功能:

Azure 集成:




原文标题:New for Devs in SQL Server 2022: Ledger for Blockchain-Backed Security原文作者:David Ramel (Converge360 的编辑和作家)原文链接:https://visualstudiomagazine.com/articles/2023/03/27/new-sql-server-2022.aspx




