KingbaseES 支持列加密
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 支持列加密的更多相关文章
- 数据库安全之TDE列加密
透明数据加密(Transparent Data Encryption) TDE - 基于列的加密 由于有了Oracle的TDE-基于列的加密,你所要做的只是定义需要加密的列,Oracle将为包含加密列 ...
- Oracle中对列加密的方法
Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col ...
- MD5和sha1加密算法--散列加密技术 MD5:128bit的大整数
在很多电子商务和社区应用中,我们都要存放很多的客户的资料,其中包括了很多的隐私信息和客户不愿被别人看到的信息,当然好有客户执行各种操作的密码,此时就需要对客户的信息进行加密再存储,目前有两种比较好的加 ...
- DotNet加密方式解析--散列加密
没时间扯淡类,赶紧上车吧. 在现代社会中,信息安全对于每一个人都是至关重要的,例如我们的银行账户安全.支付宝和微信账户安全.以及邮箱等等,说到信息安全,那就必须得提到加密技术,至于加密的一些相关概念, ...
- [asp.net mvc 奇淫巧技] 05 - 扩展ScriptBundle,支持混淆加密javascript
一.需求: 在web开发中,经常会处理javascript的一些问题,其中就包括js的压缩,合并,发布版本以及混淆加密等等问题.在asp.net 开发中我们使用ScriptBundle已经可以解决ja ...
- windows xp 不支持Wap2加密方式
故障:错误提示“Windows无法连接到选定网络,网络可能不在区域中.请刷新可用网络的列表,重新尝试.” 原因:windows xp并不直接支持Wap2加密方式的~估计是windows xp比较老了吧 ...
- windows10 升级1803后,远程错误提示“出现身份验证错误,要求的函数不受支持 CredSSP 加密 Oracle修正”的解决办法
远程出现错误提示:出现身份验证错误,要求的函数不受支持 CredSSP 加密 Oracle修正 运行 gpedit.msc 本地组策略: 计算机配置>管理模板>系统>凭据分配> ...
- 扩展ScriptBundle,支持混淆加密javascript
一.需求: 在web开发中,经常会处理javascript的一些问题,其中就包括js的压缩,合并,发布版本以及混淆加密等等问题.在asp.net 开发中我们使用ScriptBundle已经可以解决ja ...
- Vsftpd支持SSL加密传输
ftp传输数据是明文,弄个抓包软件就可以通过数据包来分析到账号和密码,为了搭建一个安全性比较高ftp,可以结合SSL来解决问题 SSL(Secure Socket Layer)工作于传输层和应用程 ...
随机推荐
- Java Web servlet 详解
执行原理 当服务器接收到客户端浏览器的访问时,会解析请求的URL路径,获取访问的Servlet的资源路径 查找web.xml文件,看是否有对应的<url-pattern>标签体内容 如果有 ...
- centos7.6部署DRBD提示“no resources defined!
环境准备: node1(主节点)IP: 192.168.26.30 主机名:node1node2(从节点)IP: 192.168.26.31 主机名:node2 1.关闭防火墙和selinux #se ...
- 10.5 详解Android Studio项目结构
Android项目的结构很复杂,并不像HTML项目,最简单的直接一个HTML文件就行了,相信学完上一节的同学就明白,哪怕是一个HelloWorld这样一个项目的文件可能都有几十个,所以我们需要搞清楚, ...
- 从零开始实现lmax-Disruptor队列(四)多线程生产者MultiProducerSequencer原理解析
MyDisruptor V4版本介绍 在v3版本的MyDisruptor实现多线程消费者后.按照计划,v4版本的MyDisruptor需要支持线程安全的多线程生产者功能. 由于该文属于系列博客的一部分 ...
- osx系统使用技巧集锦
6.禁用dashboard defaults write com.apple.dashboard mcx-disabled -boolean YES && killall Dock 5 ...
- java 九九乘法表(for循环)
package study5ran2yl.study; public class ForDemo01 { public static void main(String[] args) { int h; ...
- [linux] 输入&输出&错误流
输入&输出&错误流 Linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字分别是0,1,2. 标准 数字 含义 STDIN 0 标准输入,默认从键盘读 ...
- WPF 制作 Windows 屏保
分享如何使用WPF 制作 Windows 屏保 WPF 制作 Windows 屏保 作者:驚鏵 原文链接:https://github.com/yanjinhuagood/ScreenSaver 框架 ...
- BMP位图之8位位图(三)
起始结构 typedef struct tagBITMAPFILEHEADER { WORD bfType; //类型名,字符串"BM", DWORD bfSize; //文件大小 ...
- 【系统设计】S3 对象存储
在本文中,我们设计了一个类似于 Amazon Simple Storage Service (S3) 的对象存储服务.S3 是 Amazon Web Services (AWS) 提供的一项服务, 它 ...