18密态等值查询

简介: 18密态等值查询

一、 密态等值查询概述

随着企业数据上云,数据的安全隐私保护面临越来越严重的挑战。密态数据库将解决数据整个生命周期中的隐私保护问题,涵盖网络传输、数据存储以及数据运行态;更进一步,密态数据库可以实现云化场景下的数据隐私权限分离,即实现数据拥有者和实际数据管理者的数据读取能力分离。密态等值查询将优先解决密文数据的等值类查询问题。密态等值查询目前支持客户端工具gsqlJDBC。接下来分别介绍如何使用客户端工具执行密态等值查询的相关操作。

 

二、使用gsql操作密态数据库

1. 操作步骤

 

(1) 以操作系统用户omm登录CN所在主机。

 

(2) 使用gsql连接数据库服务器时,需使用“-C”参数或“--enable-client-encryption”,打开全密态数据库的开关。执行以下命令打开密态开关,连接密态数据库。

```sql
gsql -p PORT postgres -r -C
```

(3) 创建客户端主密钥CMK和列加密密钥CEK。创建CMK的语法请参考[CREATE CLIENT MASTER KEY](https://docs.mogdb.io/zh/mogdb/v3.0/CREATE-CLIENT-MASTER-KEY)、创建的CEK的语法请参考[CREATE COLUMN ENCRYPTION KEY](https://docs.mogdb.io/zh/mogdb/v3.0/CREATE-COLUMN-ENCRYPTION-KEY)

```sql
--创建客户端加密主密钥(CMK)
MogDB=CREATE CLIENT MASTER KEY ImgCMK1 WITH (KEY_STORE = localkms, KEY_PATH = "key_path_value1", ALGORITHM = RSA_2048);
MogDB=CREATE CLIENT MASTER KEY ImgCMK WITH (KEY_STORE = localkms, KEY_PATH = "key_path_value2", ALGORITHM = RSA_2048);
MogDB=CREATE COLUMN ENCRYPTION KEY ImgCEK1 WITH VALUES (CLIENT_MASTER_KEY = ImgCMK1, ALGORITHM = AEAD_AES_256_CBC_HMAC_SHA256);
CREATE COLUMN ENCRYPTION KEY
MogDB=CREATE COLUMN ENCRYPTION KEY ImgCEK WITH VALUES (CLIENT_MASTER_KEY = ImgCMK, ALGORITHM = AEAD_AES_256_CBC_HMAC_SHA256);
CREATE COLUMN ENCRYPTION KEY
```

查询存储密钥信息的系统表结果如下。

```sql
MogDB=SELECT * FROM gs_client_global_keys;
 global_key_name | key_namespace | key_owner | key_acl |       create_date
-----------------+---------------+-----------+---------+----------------------------
 imgcmk1         |          2200 |        10 |         | 2021-04-21 11:04:00.656617
 imgcmk          |          2200 |        10 |         | 2021-04-21 11:04:05.389746
(2 rows)
MogDB=SELECT column_key_name,column_key_distributed_id ,global_key_id,key_owner  FROM gs_column_keys;
 column_key_name | column_key_distributed_id | global_key_id | key_owner
-----------------+---------------------------+---------------+-----------
 imgcek1         |                 760411027 |         16392 |        10
 imgcek          |               3618369306 |         16398 |        10
(2 rows)
```

(4) 创建加密表。

```sql
MogDB=CREATE TABLE creditcard_info (id_number    int, name         text encrypted with (column_encryption_key = ImgCEK, encryption_type = DETERMINISTIC),
credit_card varchar(19) encrypted with (column_encryption_key = ImgCEK1, encryption_type = DETERMINISTIC));
NOTICE:  The 'DISTRIBUTE BY' clause is not specified. Using 'id_number' as the distribution column by default.
HINT:  Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
CREATE TABLE
```

查询表的详细信息如下,Modifiers值为encrypted则表示该列是加密列。

```sql
MogDB=\d creditcard_info
        Table "public.creditcard_info"
   Column    |      Type        | Modifiers
-------------+-------------------+------------
 id_number   | integer           |
 name        | text              | encrypted
 credit_card | character varying |  encrypted
```

(5) 向加密表插入数据并进行等值查询。

```sql
MogDB=INSERT INTO creditcard_info VALUES (1,'joe','6217986500001288393');
INSERT 0 1
MogDB=INSERT INTO creditcard_info VALUES (2, 'joy','6219985678349800033');
INSERT 0 1
MogDB=select * from creditcard_info where name = 'joe';
 id_number | name |     credit_card
-----------+------+---------------------
         1 | joe  | 6217986500001288393
(1 row)
-注意:使用非密态客户端查看该加密表数据时是密文
MogDB=select id_number,name from creditcard_info;
id_number |                       name
-----------+--------------------------------------
         1 | \x011aefabd754ded0a536a96664790622487c4d366d313aecd5839e410a46d29cba96a60e4831000000ee79056a114c9a6c041bb552b78052e912a8b730609142074c63791abebd0d38
         2 | \x011aefabd76853108eb406c0f90e7c773b71648fa6e2b8028cf634b49aec65b4fcfb376f3531000000f7471c8686682de215d09aa87113f6fb03884be2031ef4dd967afc6f7901646b
(2 rows)
```

(6) (可选)对加密表进行alterupdate操作。

```sql
MogDB=ALTER TABLE creditcard_info ADD COLUMN age int ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = ImgCEK, ENCRYPTION_TYPE = DETERMINISTIC);
ALTER TABLE
MogDB=\d creditcard_info
        Table "public.creditcard_info"
   Column    |      Type        | Modifiers
-------------+-------------------+------------
 id_number   | integer           |
 name        | text              | encrypted
 credit_card | character varying |  encrypted
 age         | integer           | encrypted
MogDB=ALTER TABLE creditcard_info DROP COLUMN age;
ALTER TABLE
MogDB=update creditcard_info set credit_card = '80000000011111111' where name = 'joy';
UPDATE 1
MogDB=select * from creditcard_info  where name = 'joy';
 id_number | name |    credit_card
-----------+------+-------------------
         2 | joy  | 80000000011111111
(1 row)
```
目录
相关文章
|
关系型数据库 MySQL 数据库
在 MySQL 中使用 LIKE
【8月更文挑战第12天】
2511 1
|
存储 分布式计算 容灾
数据库容量考虑因素
一、数据库需求分析 1.1 数据类型 1.2 数据量预测 1.3 数据增长速度 二、数据库性能需求 2.1 响应时间 2.2 吞吐量 2.3 并发处理能力 三、数据库成本考虑 3.1 硬件成本 3.2 软件成本 3.3 人力成本 四、数据库扩展性考虑 4.1 升级路径 4.2 兼容性 4.3 容灾备份方案
384 0
|
8天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
1850 118
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
|
9天前
|
人工智能 程序员 API
Codex 接入 DeepSeek-V4-Flash:还能补上识图,提供两套方案
Codex 接入 DeepSeek-V4-Flash 怎么配?本文覆盖 CLI 与桌面端,再用 qwen3-vl-flash 补识图,两套方案可直接照做
1404 11
|
15天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1963 10
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
9天前
|
编解码 人工智能 安全
2核4G/4核8G/8核16G阿里云服务器如何选择实例?经济型e、通用算力型u2i与计算型c9i选哪个?
本文介绍了阿里云2核4G、4核8G、8核16G三档主流配置下经济型e、通用算力型u2i和计算型c9i三种实例的最新活动价格与适用场景。同配置下三者价差显著,以2核4G为例,经济型e低至599.93元/年,计算型c9i则高达1742.08元/年。文章详细解析了各实例的性能定位:经济型e适合轻负载入门场景,u2i兼顾稳定算力与性价比,c9i凭借第9代至强处理器与芯片级安全能力支撑高性能业务。同时提示用户可叠加满减优惠券享受折上折,建议根据业务负载与预算综合决策。
554 113
|
6天前
|
编解码 弹性计算 云计算
MiniMax-H3 视频生成模型 — 一键部署与使用指南
MiniMax-H3是MiniMax开源的33B全模态视频生成模型,支持文生视频、图生视频、参考生视频三种模式,原生输出2K/15秒带立体声音频视频,已原生适配ComfyUI,并可通过阿里云计算巢一键部署。(239字)
|
21天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
3285 5

热门文章

最新文章