首页 > 数据库 >openGauss 全密态数据库等值查询

openGauss 全密态数据库等值查询

时间:2024-03-30 09:57:51浏览次数:28  
标签:加密 等值 支持 查询 密态 全密态 openGauss 客户端

全密态数据库等值查询

可获得性

本特性自openGauss 1.1.0版本开始引入。

特性简介

密态数据库意在解决数据全生命周期的隐私保护问题,使得系统无论在何种业务场景和环境下,数据在传输、运算以及存储的各个环节始终都处于密文状态。当数据拥有者在客户端完成数据加密并发送给服务端后,在攻击者借助系统脆弱点窃取用户数据的状态下仍然无法获得有效的价值信息,从而起到保护数据隐私的作用。

客户价值

由于整个业务数据流在数据处理过程中都是以密文形态存在,通过全密态数据库,可以实现:

  1. 保护数据在云上全生命周期的隐私安全,无论数据处于何种状态,攻击者都无法从数据库服务端获取有效信息。
  2. 帮助云服务提供商获取第三方信任,无论是企业服务场景下的业务管理员、运维管理员,还是消费者云业务下的应用开发者,用户通过将密钥掌握在自己手上,使得高权限用户无法获取数据有效信息。
  3. 让云数据库借助全密态能力更好的遵守个人隐私保护方面的法律法规。

特性描述

从用户视角来看,整个密态等值查询的主要功能分为三部分,主要通过新增的KeyTool工具以及openGauss的增强gsql客户端来实现。

首先是客户端密钥管理功能,用户借助新增的KeyTool工具来实现CMK的生成、销毁和更新,同时支持密钥导入导出。通过该KeyTool工具的导入导出功能,CMK可以在不同的客户端间进行传输;同时,KeyTool实现了单个客户端侧的密钥管理,通过配置管理文件,可以对密钥的存储、更新进行管理。

其次该特性提供密钥创建功能和加密表创建功能,通过新增SQL语法“CREATE CLINET MASTER KEY”和“CREATE COLUMN ENCRYPTION KEY”实现在数据库侧记录和管理CMK和CEK元信息,CMK和CEK信息被记录在新增的系统表中。通过扩展“CREATE TABLE”语法为表的每一个敏感信息列指定列加密密钥和加密算法,方便后续数据密文存储。

最后该特性对用户提供密态等值查询能力,该部分功能是整个特性的核心,虽然用户对整个密文查询无感知,但是在指定数据的加密信息后,针对该敏感数据的查询将受限于当前密态等值查询的支持规格。

从整体视角来看,该特性所实现的功能主要是为了用户基于敏感数据保护的诉求来存储管理数据并基于密文数据信息实现查询任务。

特性增强

无。

特性约束

  • 数据以列级别进行加密,而无法按照行级别区分加密策略。

  • 除Rename操作外,不支持通过Alter Table语法实现对加密表列的更改(包括加密列和非加密列之间的互转换),支持添加(Add)和删除(Drop)对应的加密列。

  • 不支持对加密列设置大部分check限制性语法,但是支持check(column is not null)语法。

  • 当support_extended_features = off时,不支持对加密列使用primary key、unique。当support_extended_features = on时,仅支持确定性加密列使用primary key、unique。

  • 不支持不同数据类型之间的隐式转换。

  • 不支持不同数据类型密文间的集合操作。

  • 不支持加密列创建范围分区。

  • 加密列仅支持repeat和empty_blob()函数。

  • 当前版本只支持gsql和JDBC(部署在linux操作系统)客户端,暂不支持ODBC等其他客户端实现密态等值查询。

  • 使用JDBC客户端时,密态等值查询特性不能与负载均衡或自动选主特性同时开启。

  • 只支持通过客户端执行copy from stdin的方式、\copy命令的方式以及insert into values(…)的方式往密态表中导入数据。

  • 不支持从加密表到文件之间的copy操作。

  • 不支持包括排序、范围查询以及模糊查询等在内的除等值以外的各种密态查询。

  • 支持部分函数存储过程密态语法,密态支持函数存储过程具体约束查看《数据库管理》数据安全管理/密态支持函数/存储过程章节。

  • 不支持通过insert into…select…、merge into语法将非加密表数据插入到加密表数据中。

  • 对于处于连接状态的连接请求,只有触发更新缓存的操作(更改用户、解密加密列失败等)和重新建连后才能感知服务端CEK信息变更。

  • 不支持在由随机加密算法加密的列上进行密态等值查询。

  • 对于密态等值查询运算中如果参与比较的两个属性条件采用不同的数据加密密钥,返回报错。

  • 密态等值查询不支持时序表、外表,不支持ustore存储引擎加密。

  • 对于数据库服务侧配置变更(pg_settings系统表、权限、密钥和加密列等信息), 需要重新建立JDBC连接保证配置变更生效。

  • 不支持多条SQL语句一起执行,insert into语句多批次执行场景不受此条约束限制。

  • 密态数据库对长度为零的空字符串不进行加密。

  • 确定性加密存在频率攻击的潜在风险,不建议在明文频率分布明显的场景下使用。

  • 密态等值查询支持的数据类型包括:

    数据类

    类型

    描述

    整型

    tinyint/tinyint(n)

    微整数,同int1

    smallint

    小整数,同int2

    int4

    常用整数

    binary_integer

    Oracle兼容类型,常用整数

    bigint/bigint(n)

    大整数,同int8

    数值类型

    numeric(p,s)

    精度为p的准确数值类型

    number

    Oracle兼容类型,等同numeric(p,s)

    浮点类型

    float4

    单精度浮点数

    float8

    双精度浮点数

    double precision

    双精度浮点数

    字符类型

    char/char(n)

    定长字符串,不足补空格,默认精度为1

    varchar(n)

    变长字符串, n是指允许的最大字节长度

    text

    文本类型

    varchar2(n)

    Oracle兼容类型,等同varchar(n)

    clob

    大文本类型

    二进制类型

    bytea

    变长的二进制字符串

    blob

    二进制大对象

依赖关系

使用全密态相关特性建议更新至相同版本的libpq_ce客户端驱动及JDBC客户端。

标签:加密,等值,支持,查询,密态,全密态,openGauss,客户端
From: https://www.cnblogs.com/renxyz/p/18105108

相关文章

  • openGauss 全局临时表
    全局临时表可获得性本特性自openGauss1.1.0版本开始引入。特性简介临时表顾名思义是不保证持久化的表,其生命周期一般跟session或者事务绑定,可以方便用于表达处理过程中的一些临时数据存放,加速查询。客户价值提升临时表的表达能力和易用性。特性描述全局临时表的元数据对......
  • openGauss 企业级增强特性
    企业级增强特性数据分区数据分区是数据库产品普遍具备的功能。在openGauss中,数据分区是对数据按照用户指定的策略对数据做的水平分表,将表按照指定范围划分为多个数据互不重叠的部分(Partition)。openGauss支持:范围分区(RangePartitioning)功能,即根据表的一列或者多列,将要插入表......
  • openGauss 慢SQL诊断
    慢SQL诊断可获得性本特性自openGauss1.1.0版本开始引入。重构前慢SQL相关视图已废弃,包括dbe_perf.gs_slow_query_info、dbe_perf.gs_slow_query_history、dbe_perf.global_slow_query_hisotry、dbe_perf.global_slow_query_info。本特性自openGauss3.1.0版本支持备机。......
  • openGauss 内置stack工具
    内置stack工具可获得性本特性自3.0.0版本开始引入。特性简介stack工具是获取数据库中各线程的调用栈的工具,用于辅助数据库运维人员定位死锁、hang等问题。客户价值提供函数级别的调用栈信息,提升数据库内核运维人员分析、定位死锁、hang等问题的效率。特性描述可以通过函数......
  • openGauss 慢SQL发现
    慢SQL发现可获得性本特性自openGauss1.1.0版本开始引入。特性简介本功能是一个SQL语句执行时间预测工具,通过模板化方法,实现在不获取SQL语句执行计划的前提下,依据语句逻辑相似度与历史执行记录,预测SQL语句的执行时间。客户价值工具不需要用户提供SQL执行计划,对数据库性能不......
  • openGauss 慢SQL根因分析
    慢SQL根因分析可获得性本特性自openGauss3.0.0开始引入。特性简介慢SQL一直是数据运维中的痛点问题,如何有效诊断慢SQL根因是当前一大难题,工具结合openGauss自身特点融合了现网DBA慢SQL诊断经验,该工具可以支持慢SQL根因15+,能同时按照可能性大小输出多个根因并提供针对性的建议......
  • openGauss 逻辑复制
    逻辑复制可获得性本特性自openGauss1.0.0版本开始引入。特性简介openGauss提供逻辑解码功能,将物理日志反解析为逻辑日志。通过DRS等逻辑复制工具将逻辑日志转化为SQL语句,到对端数据库回放,达到异构数据库同步数据的功能。目前支持openGauss数据库与MySQL数据库、Oracle数据库......
  • openGauss 访问控制模型
    访问控制模型可获得性本特性自openGauss1.1.0版本开始引入。特性简介管理用户访问权限,为用户分配完成任务所需要的最小权限。客户价值客户依据自身需求创建对应的数据库用户并赋予相应的权限给操作人员,将数据库使用风险降到最低。特性描述数据库提供了基于角色的访问控制......
  • openGauss 堆表支持预读
    堆表支持预读可获得性本特性自openGauss6.0.0版本开始引入。特性简介在对堆表进行扫描进行顺序页面读取时,通过一次行读入多个页面,来减少因频繁读单页的IO损耗,提升对堆表进行线性扫描的性能表现。客户价值提升客户在频繁进行全表线性扫描场景下的性能表现。特性描述在对数......
  • openGauss 发布订阅
    发布订阅可获得性本特性自openGauss3.0.0版本开始引入。特性简介发布订阅基于逻辑复制实现,其中有一个或者更多订阅者订阅一个发布者节点上的一个或者更多发布。订阅者从它们所订阅的发布拉取数据。实现集群间的数据实时同步。客户价值发布订阅的典型使用场景是:在一个数......