更新时间:2026-06-26 GMT+08:00
分享

场景二:透明加解密配置及操作举例

概述

数据透明加解密功能通过先进的加密系统,实现了数据库中密文数据的无缝解密,将其转换为明文供用户访问和使用。同时,该功能还能自动将用户的操作数据从明文加密为密文,并安全地存储回数据库中。在整个过程中,用户几乎察觉不到任何变化,从而确保了操作的流畅性和便捷性。

此功能不仅显著提升了数据的安全性,防止了敏感信息的泄露,还通过简化用户交互流程,显著优化了用户体验。用户无需直接参与复杂的加密解密操作,即可享受到安全的数据访问服务,实现了数据保护与使用便利性的完美平衡。

配置方式

  1. 确保业务系统能够正常使用,网络通畅、磁盘空间健康等等。
  2. 请参见插件部署将插件部署到用户业务系统。
  3. 加密网关服务正常启动并可以正常访问。
  4. 加密网关已将用户业务系统相关信息配置完成(包括网段和用户等信息)。
  5. 确保要测试或使用的数据已经配置好加密策略并执行加密完毕。

测试结果

这里使用一个测试接口展示效果:

  • 首先展示数据库中的实际数据(已加密)。
    图1 数据库中的实际数据
  • 未集成插件和集成插件后,业务系统的查询结果对比如下:
    图2 未集成插件-应用程序的执行结果展示
    图3 集成插件后-应用程序的执行结果展示

可以看出,集成插件后,业务系统将自动将密文解密成明文供用户使用。

其他说明

  1. 除了集成加密插件外,还可以使用配置加密代理服务等功能,实现类似的透明加解密功能。
  2. 详细的应用用户配置请参见应用用户
  3. 详细的应用网段配置请参见插件同步管理
  4. 插线下载地址,请参见下载插件

使用约束

暂不支持的数据操作方式(以MySQL为例):

  1. Select查询数据类型语句中,包含temp关键字的暂不支持,例如:
    SELECT * FROM UDFTESTER.STUDENT_INFO TEMP WHERE TEMP.GENDER = '男'
  2. Insert插入数据类型的自循环的批量插入数据,例如:
    INSERT INTO SCHOOL.STUDENT_INFO (STUDENT_ID, NAME, GENDER, MAJOR) WITH RECURSIVE TEMP(LEVEL) AS ( SELECT 1 UNION ALL SELECT LEVEL + 1 FROM TEMP WHERE LEVEL < 10 ) SELECT CONCAT('2024', LEVEL) AS STUDENT_ID, CONCAT('学生', LEVEL) AS NAME, CASE WHEN MOD(LEVEL, 2) = 0 THEN '女' ELSE '男' END AS GENDER, '计算机科学与技术' AS MAJOR FROM TEMP;
  3. insert包含嵌套格式,例如:
    INSERT INTO SCHOOL.STUDENT_INFO (STUDENT_ID, NAME, GENDER, MAJOR) SELECT CONCAT('2024', LPAD(CAST((SELECT COUNT(*) FROM SCHOOL.STUDENT_INFO) + 1 AS CHAR), 4, '0')), '批量导入学生', CASE WHEN (SELECT COUNT(*) FROM SCHOOL.STUDENT_INFO) % 2 = 0 THEN '男' ELSE '女' END, '计算机科学与技术' FROM DUAL
  4. update更新数据类型的包含嵌套格式,例如:
    UPDATE SCHOOL.STUDENT_INFO SET GENDER = '未知' WHERE NAME IN ( SELECT NAME FROM ( SELECT NAME FROM SCHOOL.STUDENT_INFO WHERE NAME LIKE '%雪%' ) t ) 
  5. 加密字段不支持大小比较,如大于、小于、order by、between等。
  6. 不支持函数计算操作,如AVG、MAX、MIN、SUM及计算表达式。
  7. 不支持视图、触发器及存储过程操作,涉及where等条件后的‘=’比较,必须在‘=’号两端字段均做加密或者均未做加密。
  8. 加密表名及字段名含有通配符的不支持进行配置加密。

相关文档