KINGBASE 列加密支持 sm4 和 rc4 加密算法,具体算法在 initdb 时指定,默认是 sm4。要使用列加密,必须 shared_preload_libraries = 'sysencrypt'

一、列加密

分别创建两张表:加密与非加密

test=# create table t1_encrypt(name text encrypted);
CREATE TABLE
test=# create table t1_noencrypt(name text);
CREATE TABLE
test=# insert into t1_encrypt values('kingbase');
INSERT 0 1
test=# insert into t1_noencrypt values('kingbase');
INSERT 0 1

用hexdump 查看加密情况

加密表:

[kingbase@dbhost03 61904]$ hexdump -c 71512
0000000 \0 \0 \0 \0 P 344 E 224 \0 \0 \0 \0 \0 240 037
0000010 \0 004 \0 \0 \0 \0 320 237 R \0 240 237 R \0
0000020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0001fa0 001 334 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0001fe0 001 \0 001 020 002 \b 030 \0 # 314 N 223 345 f 272 N
0001ff0 211 246 225 375 026 372 f 206 365 \0 \0 \0 \0 \0 \0 \0
0002000

非加密表:可以看到kingbase是明文的

[kingbase@dbhost03 61904]$ hexdump -c 71518
0000000 \0 \0 \0 \0 270 344 E 224 \0 \0 \0 \0 034 \0 330 037
0000010 \0 004 \0 \0 \0 \0 330 237 B \0 \0 \0 \0 \0
0000020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0001fd0 \0 \0 \0 \0 \0 \0 \0 \0 002 334 003 \0 \0 \0 \0 \0
0001fe0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 001 \0 002 \b 030 \0
0001ff0 023 k i n g b a s e \0 \0 \0 \0 \0 \0 \0
0002000

二、列加密使用限制

1、表空间加密与列加密不能同时使用

如果表空间已启用加密,不能再在该表空间上创建含有加密列的表。具体报错如下:

test=# CREATE TABLE t1(id INT, name VARCHAR(100) encrypted) TABLESPACE tsp1;
ERROR: Column encryption and tablepspace encryption cannot be userd at the same time.

2、关闭wallet后,不能创建、删除加密表

test=# closeup wallet with password "Kingbase";
WARNING: wallet alread closed
CLOSE WALLET
test=# drop table t1_encrypt;
ERROR: wallet status is closed, open wallet and try again
test=# create table t2_encrypt(name text encrypted);
ERROR: wallet status is closed, open wallet and try again

3、无法修改列为加密或非加密

test=# alter table t1_encrypt alter column name type text;
ERROR: cannot modify encrypted column type.
test=# alter table t1_noencrypt alter column name set encrypted;
ERROR: syntax error at or near "encrypted"
LINE 1: alter table t1_noencrypt alter column name set encrypted;

4、加密列不支持blob , clob

test=# create table t1_encrypt(name clob encrypted);
ERROR: BLOB, CLOB or composite type columns can't be encrypted

KingbaseES 支持列加密的更多相关文章

  1. 数据库安全之TDE列加密

    透明数据加密(Transparent Data Encryption) TDE - 基于列的加密 由于有了Oracle的TDE-基于列的加密,你所要做的只是定义需要加密的列,Oracle将为包含加密列 ...

  2. Oracle中对列加密的方法

    Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col ...

  3. MD5和sha1加密算法--散列加密技术 MD5:128bit的大整数

    在很多电子商务和社区应用中,我们都要存放很多的客户的资料,其中包括了很多的隐私信息和客户不愿被别人看到的信息,当然好有客户执行各种操作的密码,此时就需要对客户的信息进行加密再存储,目前有两种比较好的加 ...

  4. DotNet加密方式解析--散列加密

    没时间扯淡类,赶紧上车吧. 在现代社会中,信息安全对于每一个人都是至关重要的,例如我们的银行账户安全.支付宝和微信账户安全.以及邮箱等等,说到信息安全,那就必须得提到加密技术,至于加密的一些相关概念, ...

  5. [asp.net mvc 奇淫巧技] 05 - 扩展ScriptBundle,支持混淆加密javascript

    一.需求: 在web开发中,经常会处理javascript的一些问题,其中就包括js的压缩,合并,发布版本以及混淆加密等等问题.在asp.net 开发中我们使用ScriptBundle已经可以解决ja ...

  6. windows xp 不支持Wap2加密方式

    故障:错误提示“Windows无法连接到选定网络,网络可能不在区域中.请刷新可用网络的列表,重新尝试.” 原因:windows xp并不直接支持Wap2加密方式的~估计是windows xp比较老了吧 ...

  7. windows10 升级1803后,远程错误提示“出现身份验证错误,要求的函数不受支持 CredSSP 加密 Oracle修正”的解决办法

    远程出现错误提示:出现身份验证错误,要求的函数不受支持 CredSSP 加密 Oracle修正 运行 gpedit.msc 本地组策略: 计算机配置>管理模板>系统>凭据分配> ...

  8. 扩展ScriptBundle,支持混淆加密javascript

    一.需求: 在web开发中,经常会处理javascript的一些问题,其中就包括js的压缩,合并,发布版本以及混淆加密等等问题.在asp.net 开发中我们使用ScriptBundle已经可以解决ja ...

  9. Vsftpd支持SSL加密传输

    ftp传输数据是明文,弄个抓包软件就可以通过数据包来分析到账号和密码,为了搭建一个安全性比较高ftp,可以结合SSL来解决问题   SSL(Secure Socket Layer)工作于传输层和应用程 ...

随机推荐

  1. 9.4 苹果macOS电脑如何安装Android开发环境(Android Studio)

    下载 来到官方下载界面(需要 科 学 上 网),下载最新版本,点击Download,然后同意协议,在点击下载:如果平常看文档,可以点击Google中国Android开发者官网(部分用户可能也需要科 学 ...

  2. 抓到Dubbo异步调用的小BUG,再送你一个贡献开源代码的机会

    hello,大家好呀,我是小楼. 最近一个技术群有同学at我,问我是否熟悉Dubbo,这我熟啊~ 他说遇到了一个Dubbo异步调用的问题,怀疑是个BUG,提到BUG我可就不困了,说不定可以水,哦不.. ...

  3. Collection子接口:Set接口

    1.Set 存储的数据特点:无序的.不可重复的元素具体的:以HashSet为例说明: 1. 无序性:不等于随机性.存储的数据在底层数组中并非照数组索引的顺序添加,而是根据数据的哈希值决定的. 2. 不 ...

  4. ApiDay002_01 正则表达式

    正则表达式 用于检测.测试字符串规则的表达式. 经常用于检测字符串是否符合特定的规则,在网站上经常用于检测用户输入数据是否符合规范: 检测 用户名 是否为 8~10 数字 英文(大小写) 检测 电话号 ...

  5. noi-2.2基本算法之递归和自调用函数:放苹果

    先看一下题目: http://noi.openjudge.cn/ch0202/666/http://noi.openjudge.cn/ch0202/666/ 把M个同样的苹果放在N个同样的盘子里,允许 ...

  6. input函数的使用

    input()函数的介绍 作用:接受来自用户的输入 返回值类型:输入值的类型为str 值得存储:使用=对输入得值进行存储 input()函数的基本使用 name = input('What's you ...

  7. 题解 洛谷 P2388 阶乘之乘

    目录 简要题意 题解 主要思路 一个 \(\omega(n)\) 的算法 一个 \(O(\log n)\) 的算法 一个算法 代码 算法 \(1\)(\(\omega(n)\)) 算法 \(2\) 算 ...

  8. SpringBoot集成文件 - 如何基于POI-tl和word模板导出庞大的Word文件?

    前文我们介绍了通过Apache POI通过来导出word的例子:那如果是word模板方式,有没有开源库通过模板方式导出word呢?poi-tl是一个基于Apache POI的Word模板引擎,也是一个 ...

  9. PHP几个常见不常用的方法

    method_exists判断方法是否存在 <?php class F{ public function __construct(){ if(method_exists($this, 'son_ ...

  10. 用户认证(Authentication)进化之路:由Basic Auth到Oauth2再到jwt

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_98 用户认证是一个在web开发中亘古不变的话题,因为无论是什么系统,什么架构,什么平台,安全性是一个永远也绕不开的问题 在HTTP ...