KingbaseES 表空间加密-透明加密
【本文正在参与炫“库”行动-人大金仓有奖征文】
活动链接:https://marketing.csdn.net/p/98bd30353e7cb998b6070a89e8b91edb
透明存储加密是指数据在写到磁盘上时对其进行加密,当授权用户重新读取数据时再对其进行解密。加密解密过程对用户都是透明的,无需对应用程序进行修改,授权用户甚至不会注意到数据已经在存储介质上加密。当前的透明加密下只支持表空间加密。
以下所有的用例都是基于KingbaseES V8R6版本进行过测试。
一、配置透明加密
V8R6数据库内置加密算法支持sm4 和rc4,数据库在初始化时通过 -e 选项指定默认透明加密算法。没指定情况下,默认是sm4。
initdb -D data -USYSTEM -e sm4
加载加密库文件
shared_preload_libraries = 'sysencrypt'
打开钱包:创建加密表空间,必须要求钱包打开状态。建表时,wallet 可以是关闭状态,不影响加密使用。Oracle 创建及访问加密表空间的表,要求wallet 必须是打开的。
test=# openup wallet with password "123456" ;
OPEN WALLET
test=# closeup wallet with password "123456" ;
CLOSE WALLET
test=# alter wallet with password "Kingbase";
ALTER WALLET
test=# openup wallet with password "Kingbase" ;
OPEN WALLET
创建加密表空间
test=# CREATE TABLESPACE ENC_TS LOCATION '/data/tbs01' with (encryption = true);
CREATE TABLESPACE
test=# select * from pg_tablespace;oid | spcname | spcowner | spcacl | spcoptions
-------+-------------+----------+--------+-------------------1663 | sys_default | 10 | | 1664 | sys_global | 10 | | 1986 | sysaudit | 10 | | 71438 | enc_ts | 10 | | {encryption=true}
(4 rows)
二、数据表加密结果验证
1、创建数据表
test=# create table t1_encrypt(id integer) tablespace ENC_TS;
CREATE TABLE
test=# insert into t1_encrypt select generate_series(1,100);
INSERT 0 100
test=# create table t1_noencrypt(id integer);
CREATE TABLE
test=# insert into t1_noencrypt select generate_series(1,100);
INSERT 0 100test=# select tablename,tablespace from pg_tables where tablename in ('t1_encrypt','t1_noencrypt');tablename | tablespace
--------------+------------t1_encrypt | enc_tst1_noencrypt |
(2 rows)test=# select relname,reltablespace,relfilenode from pg_class where relname in ('t1_encrypt','t1_noencrypt');
relname | reltablespace | relfilenode
--------------+---------------+-------------
t1_encrypt | 71438 | 71439
t1_noencrypt | 0 | 71442
(2 rows)
2、验证加密结果
非加密表:
[kingbase@dbhost03 ~]$ hexdump -c /data/kbdata/base/61904/71442
0000000 \0 \0 \0 \0 030 ) - 224 \0 \0 \0 \0 250 001 200 023
0000010 \0 004 \0 \0 \0 \0 340 237 8 \0 300 237 8 \0
0000020 240 237 8 \0 200 237 8 \0 ` 237 8 \0 @ 237 8 \0
0000030 237 8 \0 \0 237 8 \0 340 236 8 \0 300 236 8 \0
0000040 240 236 8 \0 200 236 8 \0 ` 236 8 \0 @ 236 8 \0
0000050 236 8 \0 \0 236 8 \0 340 235 8 \0 300 235 8 \0
0000060 240 235 8 \0 200 235 8 \0 ` 235 8 \0 @ 235 8 \0
0000070 235 8 \0 \0 235 8 \0 340 234 8 \0 300 234 8 \0
0000080 240 234 8 \0 200 234 8 \0 ` 234 8 \0 @ 234 8 \0
0000090 234 8 \0 \0 234 8 \0 340 233 8 \0 300 233 8 \0
00000a0 240 233 8 \0 200 233 8 \0 ` 233 8 \0 @ 233 8 \0
00000b0 233 8 \0 \0 233 8 \0 340 232 8 \0 300 232 8 \0
00000c0 240 232 8 \0 200 232 8 \0 ` 232 8 \0 @ 232 8 \0
00000d0 232 8 \0 \0 232 8 \0 340 231 8 \0 300 231 8 \0
00000e0 240 231 8 \0 200 231 8 \0 ` 231 8 \0 @ 231 8 \0
加密表:
[kingbase@dbhost03 61904]$ hexdump -c 71439
0000000 \0 \0 \0 \0 H 345 , 224 \0 \0 \0 \0 250 001 200 023
0000010 \0 004 \0 \0 \0 \0 340 237 8 \0 300 237 8 \0
0000020 030 035 ` 330 221 } 200 v H p 334 315 264 - T
0000030 321 " ! 333 254 347 331 c 322 306 ( P 373 301 216 \
0000040 p J * 270 243 351 331 334 205 035 207 221 322 202 " 355
0000050 270 267 4 312 F H 355 \n 273 C 004 d > 267 307 271
0000060 i B 276 ~ m o 202 222 317 \b b K 1 310 317 213
0000070 250 n 252 277 ! * 322 213 > X 323 246 V 261 177 ,
0000080 035 364 221 i 267 334 332 342 374 E y 270 p 373 276 1
0000090 353 j 241 024 216 275 027 243 a 335 * 0 350 301 271 035
00000a0 241 335 250 337 v 305 d W 262 305 365 W 270 ' 3 206
00000b0 301 222 M F c ( 360 035 216 347 ` g ` 321 220 W
00000c0 243 345 ^ 321 V : 252 331 274 030 274 ( 301 x 250 \v
结果:加密的表hexdump 结果是加密的。
三、指定表空间加密密钥
创建加密表空间时,可以指定加密密钥。enckey可以不指定,系统默认分配或者申请,若指定,就用这个密钥。
CREATE TABLESPACE ENC_TS LOCATION '/data/tbs01' with (encryption = true, enckey = 'kb123456');
Note:这个加密密钥对于用户来说是透明的,enckey 是系统内部使用的,实际上没有必要,不建议用户指定。
KingbaseES 表空间加密-透明加密相关推荐
- 金仓数据库KingbaseES表空间(tablespace)知多少
金仓数据库KingbaseES表空间定义 金仓数据库KingbaseES中的表空间允许在文件系统里定义那些代表数据库对象的文件存放位置,比如表和索引等.一旦表空间被创建,那么就可以在创建数据库对象时通 ...
- 管理表空间和数据文件——建立表空间——建立字典管理表空间和建立加密表空间...
字典管理表空间是为了与早期版本兼容而保留的空间管理特性.当使用字典管理方式时,区数据字典进行管理. 注意:如果建立字典管理表空间,那么要求system表空间必须采用字典管理方式,并且建立时,需要指定e ...
- 金仓数据库KingbaseES表空间介绍
1.表空间的概念 KingbaseES中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置.在KingbaseES中表空间实际上就是给表指定一个存储目录. 2.表空间的作用 通过使用表空间 ...
- mysql5.7.16 表空间加密,MySQL :: MySQL 5.7参考手册:: A.16 MySQL 5.7 FAQ:InnoDB表空间加密...
A.16.1. 数据是否被授权查看的用户解密? 是.InnoDB表空间加密旨在为客户提供在数据库中透明地应用加密而不影响现有应用程序的能力.以加密格式返回数据会破坏大多数现有的应用程序.InnoDB表 ...
- mysql5.7.16 表空间加密_技术分享 | InnoDB 表空间加密
本文目录: 一.表空间加密概述 应⽤场景 加密插件 加密限制 注意事项 二.加密表空间 安装加密插件 配置表空间加密 查看表空间被加密的表 三.更新 master encryption key 四.导 ...
- oracle透明加密部署及场景使用
一 文档说明 二 钱夹的部署 2.1 指定钱夹存放位置 2.2 创建目录 2.3 创建主加密键 2.4 打开和关闭钱夹 2.5 加密列和表空间具体过程 三RAC中配置wallet钱夹 四DG端配置钱夹 ...
- oracle12c加密ted,Oracle数据透明加密-TDE
介绍 Oracle 10g R2提供了一个新的特性,让你只需要做如下动作:你可以不写一行代码,只需要声明你需要加密某列.当用户插入数据的时候,数据库透明的加密数据然后存储加密后的数据.同样的,当用户读 ...
- 笔记:TDE数据库透明加密(官档翻译摘选)
Transparent Data Encryption (TDE) TDE能够加密存储在表和表空间中的敏感数据,对于可以访问数据的数据库用户或应用程序,加密的数据被透明地解密.TDE有助于在存储媒体或 ...
- TTEFS - 基于文件过滤驱动的透明加密内核
更多产品信息: http://www.byte2code.com 1产品综述 1.1产品简介 TTEFS(True Transparent Encryption File System)是一款文 ...
- TTEFS-基于LayerFsd的文档透明加密SDK
更多产品信息: http://www.byte2code.com 1产品综述 1.1产品简介 TTEFS(True Transparent Encryption File System)是一款文 ...
最新文章
- ubunto用户切换
- Linux ALSA声卡驱动之三:PCM设备的创建
- 左神算法:将搜索二叉树转换成双向链表(Java版)
- Spring中DispacherServlet与WebApplicationContext、ServletContext的关系和工作机制
- android启用hdcp_如何在Android上启用优先收件箱(和设置仅重要通知)
- 实现Windows程序的数据更新
- PHPExcel生成或读取excel文件
- phpcms能做什么呢?有什么作用呢?
- 让cp显示进度的脚本
- html动画转换为桌面动态壁纸,怎么设置电脑动态壁纸-动态桌面,这个功能太好玩了...
- CxImage 初识
- idea 安装 jclasslib
- 考研复试问题集锦——数据库
- 数据结构 严蔚敏 第八章 排序 期末复习总结
- kali Linux的下载与安装
- lightning接口_带你回看手机接口发展史:TypeC将实现大一统?
- 使用超终端连接Cisco 2950交换机步骤,通过console口
- 好记性不如烂笔头--校园网下Parsec远程控制软件的使用
- 进行大数据测试需要关注那些测试点?
- CSU-ACM2019寒假训练1-E - 可能简单题