• 金仓数据库KingbaseES安全指南--5.2. 数据完整性保护


    5.2. 数据完整性保护

    5.2.1. 传输完整性保护

    数据库通过SSL通信进行传输完整性保护,配置方法同SSL传输加密。

    5.2.2. 用户数据完整性保护

    通过在每个数据块头增加"数据水印",KingbaseES实现了数据存储过程中的完整性校验和保护。每次读磁盘时,自动进行数据水印校验。每次写磁盘时,自动更新数据水印。

    数据校验支持CRC、SM3、SM3_HMAC算法,可以在初始化数据目录时指定使用的校验算法。此外,KingbaseES还支持国密算法校验。

    initdb -a sm3 -D datadir
    

    也可以使用 sys_checksums 工具来启用或切换使用的校验算法。

    sys_checksums -d -D datadir
    sys_checksums -e -a sm3 -D datadir
    

    使用 sys_controldata 工具可查看已指定的校验算法。

    sys_controldata -D datadir
    

    输出 Data page checksum version 信息标识当前使用的算法。可能取值为0、1、2、3。 0表示未开启完整性保护功能,非0表示已开启功能。1表示使用CRC校验,2表示使用SM3校验,3表示SM3_HMAC校验。

    KingbaseES 提供配置参数zero_damaged_pages,若设置为true,在读取数据发现页面错误时,服务器将页面初始化为初始状态,继续处理。这个设置适用于对数据一致性要求不高,允许数据部分丢失的场合。

    对于在透明加密需要做校验的情况下,写出数据时会先判断页面所属的表空间是否加密,如果表空间是加密的那么会先加密数据然后对加密完成后的数据计算校验值并写出,非加密表空间则直接计算校验值并写出。读入数据时也是先对读进来的页面判断所属表空间是否加密,如果表空间是加密的先计算校验值,校验通过后再解密数据,表空间非加密则跳过解密过程。

  • 相关阅读:
    线性变换及其基本性质
    期货交易记录20240626
    mybatis开发部分核心代码
    GO语言-管道channel
    项目管理学习了解
    【机器学习 | Python】mlxtend 包的使用指南
    韩语这是 作死的节奏啊 怎么说的
    【C++程序员必修第一课】C++基础课程-11:C++ 内置数组
    NFT 分化趋势已显,如何捕获价值?
    mybatis学习(2) - MyBatis Generate的使用
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126021043