23-Oracle 23 ai 区块链表(Blockchain Table)

news2025/6/12 17:44:37

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志和日常操作业务的日志,不允许任何动作(包含管理员)进行修改的强合规要求。

医疗行业和有些加密算法的行业是不是可以省掉物理的KEY,节约人工和偶尔忘带key的苦恼。不过对于DBA来说是不是又要有如果修改,徒增N多人工审批流程。便利性和安全性总是那么来回拉扯。

一、区块链表(Blockchain Table)的核心目标

1. 防内部篡改与特权滥用

- 不可变性:仅允许插入操作,禁止更新或删除(包括DBA权限)。

- 密码学验证链:通过哈希算法(如SHA2-512)将每行数据与前一行链接,任何篡改会破坏哈希链,支持快速验证数据完整性。

- 终端签名机制:支持用户用私钥签名插入的数据行,防止身份冒充(如"DBMS_BLOCKCHAIN_TABLE.VERIFY_ROWS")。

2. 企业级审计合规

- 表级摘要签名:定期生成加密摘要,可检测大规模回滚或未授权操作。

- 分布式事务支持:23ai版本新增跨区块链表事务能力,适配复杂业务流。

核心价值:为金融交易日志、医疗存证、供应链溯源等场景提供 集中式防篡改审计层。

二、业界同类产品对比

(1)数据库内置防篡改方案

产品 核心特性 与Oracle差异

SQL Server Ledger Tables 类似哈希链机制,支持只追加操作 缺少终端用户签名和分布式事务支持

PostgreSQL pg_verify 扩展插件实现数据哈希校验 非原生集成,性能和管理复杂度较高

(2)独立区块链平台

产品 主导方 适用场景 与Oracle定位差异

Hyperledger Fabric 是由Linux基金会 跨企业联盟链,特点是支持隐私通道,去中心化架构 vs Oracle中心化

蚂蚁链由蚂蚁集团 高并发商品溯源(10万+TPS),特点是公有链属性,数据透明性要求高

Oracle Blockchain Platform Oracle 混合云部署,与数据库深度集成 补充Oracle区块链表的多方协作场景

Oracle区块链表是 数据库原生方案,适合企业内部高敏数据防篡改;独立区块链平台(如Hyperledger)更适合跨组织信任协作。

三、功能验证

检查组件VALID状态
SYS@CDB$ROOT> 
SELECT SUBSTR(comp_id,1,12) AS comp_id,
status,
SUBSTR(version,1,10) AS version,
SUBSTR(comp_name,1,40) AS comp_name
FROM dba_registry;

COMP_ID    STATUS        VERSION       COMP_NAME
__________ _____________ _____________ _____________________________________
CATALOG    VALID         23.0.0.0.0    Oracle Database Catalog Views
CATPROC    VALID         23.0.0.0.0    Oracle Database Packages and Types
RAC        OPTION OFF    23.0.0.0.0    Oracle Real Application Clusters
JAVAVM     VALID         23.0.0.0.0    JServer JAVA Virtual Machine
XML        VALID         23.0.0.0.0    Oracle XDK
CATJAVA    VALID         23.0.0.0.0    Oracle Database Java Packages
APS        VALID         23.0.0.0.0    OLAP Analytic Workspace
XDB        VALID         23.0.0.0.0    Oracle XML Database
OWM        VALID         23.0.0.0.0    Oracle Workspace Manager
CONTEXT    VALID         23.0.0.0.0    Oracle Text
XOQ        VALID         23.0.0.0.0    Oracle OLAP API
SDO        VALID         23.0.0.0.0    Spatial
OLS        VALID         23.0.0.0.0    Oracle Label Security
DV         VALID         23.0.0.0.0    Oracle Database Vault

14 rows selected.

 区块链表基础操作与防篡改验证

​--需要授予权限,测试使用SYS权限足够​:
CREATE BLOCKCHAIN TABLE
EXECUTE ON DBMS_BLOCKCHAIN_TABLE
GRANT EXECUTE ON SYS.DBMS_BLOCKCHAIN_TABLE TO PUBLIC;
GRANT DB_DEVELOPER_ROLE TO PUBLIC;
​--关键参数​-- 保留期阈值:
ALTER SYSTEM SET blockchain_table_retention_threshold = 16;
-- 启用缓存加速查询
ALTER SYSTEM SET true_cache_enabled = TRUE;

-- 1. 创建区块链表(保留期最小16天)
CREATE BLOCKCHAIN TABLE bct_audit_logs (
    log_id        NUMBER PRIMARY KEY,
    action_type   VARCHAR2(50),
    user_name     VARCHAR2(30),
    action_time   TIMESTAMP DEFAULT SYSTIMESTAMP) 
    NO DROP UNTIL 16 DAYS IDLE
  NO DELETE UNTIL 16 DAYS AFTER INSERT
  HASHING USING SHA2_512 VERSION V1;
  -- 23ai支持列操作不影响哈希链
  
SYS@CDB$ROOT> show pdbs;
   CON_ID CON_NAME    OPEN MODE     RESTRICTED
_________ ___________ _____________ _____________
        3 FREEPDB1    READ WRITE    NO
SYS@CDB$ROOT> CREATE BLOCKCHAIN TABLE bct_audit_logs (
    log_id        NUMBER PRIMARY KEY,
    action_type   VARCHAR2(50),
    user_name     VARCHAR2(30),
    action_time   TIMESTAMP DEFAULT SYSTIMESTAMP) 
  NO DROP UNTIL 16 DAYS IDLE
  NO DELETE UNTIL 16 DAYS AFTER INSERT
  HASHING USING SHA2_512 VERSION V1;

Blockchain TABLE created.

SYS@CDB$ROOT> DESC bct_audit_logs;

Name           Null?       Type
______________ ___________ _______________
LOG_ID         NOT NULL    NUMBER
ACTION_TYPE                VARCHAR2(50)
USER_NAME                  VARCHAR2(30)
ACTION_TIME                TIMESTAMP(6)
SYS@CDB$ROOT>
-- 2. 插入数据(仅允许插入)
INSERT INTO bct_audit_logs (log_id, action_type, user_name) 
VALUES (1, 'LOGIN', 'ADMIN');
COMMIT;

SYS@CDB$ROOT> INSERT INTO bct_audit_logs (log_id, action_type, user_name) VALUES (1, 'LOGIN', 'ADMIN');
1 row inserted.
SYS@CDB$ROOT> COMMIT;
Commit complete.
--检查程序包表DBMS_BLOCKCHAIN_TABLE
SELECT OBJECT_NAME 
FROM ALL_OBJECTS 
WHERE OWNER='SYS' 
  AND OBJECT_NAME='DBMS_BLOCKCHAIN_TABLE';
OBJECT_NAME
________________________
DBMS_BLOCKCHAIN_TABLE
DBMS_BLOCKCHAIN_TABLE
--
info BCT_AUDIT_LOGS;
TABLE: BCT_AUDIT_LOGS
         LAST ANALYZED:
         ROWS         :
         SAMPLE SIZE  :
         INMEMORY     :DISABLED
         COMMENTS     :

Columns
NAME          DATA TYPE           NULL  DEFAULT    COMMENTS
*LOG_ID       NUMBER              No
 ACTION_TYPE  VARCHAR2(50 BYTE)   Yes
 USER_NAME    VARCHAR2(30 BYTE)   Yes
 ACTION_TIME  TIMESTAMP(6)        Yes   SYSTIMESTAMP


Indexes
INDEX_NAME         UNIQUENESS    STATUS    FUNCIDX_STATUS    COLUMNS
__________________ _____________ _________ _________________ __________
SYS.SYS_C008603    UNIQUE        VALID                       LOG_ID

验证blockchain table 

-- 3. 尝试篡改(将报错失败)
UPDATE bct_audit_logs SET user_name = 'HACKER' WHERE log_id = 1; 
-- SQL Error: ORA-05715: operation not allowed on the blockchain or immutable table
DELETE FROM bct_audit_logs; 
-- SQL Error: ORA-05715: operation not allowed on the blockchain or immutable table

-- 4. 验证数据完整性--
SET SERVEROUTPUT ON;
DECLARE
    l_verified_rows NUMBER;
BEGIN
    DBMS_BLOCKCHAIN_TABLE.VERIFY_ROWS(
        schema_name            => 'SYS',          -- 表所属模式
        table_name             => 'BCT_AUDIT_LOGS', 
        number_of_rows_verified => l_verified_rows -- 返回已验证行数
    );
    DBMS_OUTPUT.PUT_LINE('校验完成!有效行数: ' || l_verified_rows);
EXCEPTION
    WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('错误: ' || SQLERRM);
END;
/
--校验完成!有效行数: 3
PL/SQL procedure successfully completed.
--
SELECT blockchain FROM dba_tables WHERE table_name = 'BCT_AUDIT_LOGS';
分布式事务支持​(跨区块链表操作)
-- 创建第二个区块链表
CREATE BLOCKCHAIN TABLE bct_order_history (
    order_id NUMBER PRIMARY KEY,
    item_name VARCHAR2(100)
)     
NO DROP UNTIL 16 DAYS IDLE
  NO DELETE UNTIL 16 DAYS AFTER INSERT
  HASHING USING SHA2_512 VERSION V1;
--Blockchain TABLE created.

-- 跨表事务(23ai新增)--  -- 事务提交后两表数据同时生效
BEGIN
    INSERT INTO bct_audit_logs VALUES (3, 'ORDER', 'USER1', SYSTIMESTAMP);
    INSERT INTO bct_order_history VALUES (1001, 'Laptop');
    COMMIT;
END;
/
--
SYS@CDB$ROOT> BEGIN
  2      INSERT INTO bct_audit_logs VALUES (3, 'ORDER', 'USER1', SYSTIMESTAMP);
  3      INSERT INTO bct_order_history VALUES (1001, 'Laptop');
  4      COMMIT;
  5  END;
  6* /

PL/SQL procedure successfully completed.

四、Oracle 23ai 增强场景实践建议

1. 敏感操作双重审计

- 为DBA操作启用区块链表+统一审计(23ai新增列级审计策略)。

2. 与True Cache集成

- 通过内存缓存(True Cache)加速区块链表查询,同时保持一致性。

3. 向量搜索辅助监控

- 利用23ai的AI Vector Search快速比对海量日志文件的哈希值。

- 维度 Oracle区块链表的价值

局限性及应对策略--实操下来有很多限制

文件篡改场景意义 可提供司法取证依据,但需结合系统层防护

数据库文件物理损坏---哈希链断裂导致全表验证失败 ---要结合RAID或分布式存储冗余备份

私钥泄露---攻击者可用合法身份插入恶意数据---使用HSM(硬件安全模块)保管私钥

全节点入侵(DBA权限) ----可绕过审计强制删除表 ---启用"NO DROP UNTIL n DAYS IDLE"锁定策略

区块链表是 应用层防篡改方案,不能替代系统层安全(如文件加密、入侵检测)。

其核心在于(是不是防君子不防小人):

- 为合规审计提供 密码学可验证的证据链;

- 显著提高 内部人作案的成本和风险。

核心防御内部人篡改、提供密码学可验证审计链。 集中式高敏数据保护 → 优先采用Oracle区块链表;

业界定位数据库原生防篡改方案,与独立区块链平台互补。跨组织分布式信任 → 结合Oracle Blockchain Platform或Hyperledger。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2407857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…

3.3.1_1 检错编码(奇偶校验码)

从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​,覆盖应用全生命周期测试需求,主要提供五大核心能力: ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…

python/java环境配置

环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…

centos 7 部署awstats 网站访问检测

一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…

无法与IP建立连接,未能下载VSCode服务器

如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…