首页 > 数据库 >openGauss学习笔记-125 openGauss 数据库管理-设置账本数据库-校验账本数据一致性

openGauss学习笔记-125 openGauss 数据库管理-设置账本数据库-校验账本数据一致性

时间:2023-11-16 21:01:02浏览次数:29  
标签:text 数据库 ledger 校验 pg openGauss 账本 check

openGauss学习笔记-125 openGauss 数据库管理-设置账本数据库-校验账本数据一致性

125.1 前提条件

数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时段内有账本操作记录结果产生。

125.2 背景信息

  • 账本数据库校验功能目前提供两种校验接口,分别为:ledger_hist_check(text, text)和ledger_gchain_check(text, text)。普通用户调用校验接口,仅能校验自己有权限访问的表。

  • 校验防篡改用户表和用户历史表的接口为pg_catalog.ledger_hist_check,操作为:

    SELECT pg_catalog.ledger_hist_check(schema_name text,table_name text);
    

    如果校验通过,函数返回t,反之则返回f。

  • 校验防篡改用户表、用户历史表和全局区块表三者是否一致的接口为pg_catalog.ledger_gchain_check,操作为:

    SELECT pg_catalog.ledger_gchain_check(schema_name text, table_name text);
    

    如果校验通过,函数返回t,反之则返回f。

125.3 操作步骤

  1. 校验防篡改用户表ledgernsp.usertable与其对应的历史表是否一致。

    openGauss=# SELECT pg_catalog.ledger_hist_check('ledgernsp', 'usertable');
    

    查询结果如下:

     ledger_hist_check
    -------------------
     t
    (1 row)
    

    该结果表明防篡改用户表和用户历史表中记录的结果能够一一对应,保持一致。

  2. 查询防篡改用户表ledgernsp.usertable与其对应的历史表以及全局区块表中关于该表的记录是否一致。

    openGauss=# SELECT pg_catalog.ledger_gchain_check('ledgernsp', 'usertable');
    

    查询结果如下:

     ledger_gchain_check
    ---------------------
     t
    (1 row)
    

    查询结果显示,上述三表中关于ledgernsp.usertable的记录保持一致,未发生篡改行为。

标签:text,数据库,ledger,校验,pg,openGauss,账本,check
From: https://blog.51cto.com/shuchaoyang/8432710

相关文章

  • C#使用SqlSugar操作MySQL数据库实现简单的增删改查
    ......
  • Navicat设置MySQL某用户只可访问特定数据库或表
    概述项目中需要将数据库中某些表对其他系统开放,故需设置数据库的访问权限,使得某用户只能访问指定的表。MySQL提供了相关的SQL语句,但本次使用Navicat以可视化方式进行配置。方法1、新建用户2、设置权限(1)服务器权限全不勾选(2)权限权限用于设置该用户可操作哪些数据库或表,且可设置操作......
  • Oracle数据库日常巡检指令
    Oracle数据库的日常巡检内容包括:(1)Oracle数据库基本状况检查;(2)Oracle相关资源的使用情况检查;(3)Oracle数据库性能检查;(4)数据库服务器cpu、mem和I/O性能检查;(5)数据库服务器安全性及其他事项检查。需要指出的是这些巡检指令不仅在巡检过程中用得上,某些故障的诊断场景中同样可以利用,还是比较......
  • 详解数据库SQL中的三个语句:DROP、TRUNCATE 、DELETE
    本文分享自华为云社区《GaussDB数据库SQL系列-DROP&TRUNCATE&DELETE》,作者:Gauss松鼠会小助手2。一、前言在数据库中,SQL作为一种常用的数据库编程语言,扮演着至关重要的角色。SQL不仅可以用于创建、修改和查询数据库,还可以通过DROP、DELETE和TRUNCATE等语句来删除数据。这些......
  • Redis 缓存与数据库数据不一致问题
    Redis缓存与数据库数据不一致问题是指在使用Redis作为缓存系统时,由于缓存和数据库之间的操作没有同步或处理不当,导致缓存中的数据与数据库中的数据不同步,产生数据不一致的情况。现象:数据库更新后,缓存未更新,导致缓存中的数据是旧的。缓存脏读,即缓存中的数据被更新,而数据库中的数据未......
  • oracle SQL 实现对数据库的的脱敏和对称加密
    之前的kettleETL太慢了insertintoselect83w数据220skettle83w数据etl3h26w~功能变更耗时另外如果需要再次对其他字段做脱敏时间又比较耗时需要再次编写环节复制表INSERTINTOXXXXSELECT*FROMXXXX_JM;验证数据--源表总数SELECTCOUNT(*)F......
  • mendix 连接默认数据库改为mss sql
    mendix支持的默认msssql数据库为2019/2022+先下载连接驱动jdbchttps://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15.当提示"The"Encrypt"propertyissetto"true"andthe"trust......
  • 数据库连接池
    目录连接池概述连接池的设计细节分析连接池概述我们在进行数据库操作的时候为了提高数据库(关系型数据库)的访问瓶颈,除了在服务器端增加缓存服务器(例如redis)缓存常用的数据之外,还可以增加连接池,来提高数据库服务器的访问效率。一般来说,对于数据库操作都是在访问数据库的时候创建......
  • Mysql数据库查询之模糊查询
    一、什么是模糊查询模糊查询是根据一定的模式匹配规则,查找与指定条件相似或相符的数据。二、模糊查询实操通配符查询1、%表示任意0个或多个字符形式一:select查询字段from表名where字段like’%’代码演示查询结果 形式二:select查询字段from表名where字段like......
  • 高斯数据库HCNA之数据库开发环境
    一、GaussDB数据库驱动驱动概念介绍数据库驱动是应用程序和数据库存储之间的一种接口,数据库厂商为了某一种开发语言环境(比如Java、C)能够实现数据库调用而开发的类似翻译员功能的程序,将复杂的数据库操作与通信抽象成为了当前开发语言的访问接口,因此,为了满足用户需求,GaussDB100同......