透明存储加密优势

透明存储加密可确保加密敏感数据满足合规性要求,并提供简化加密操作的功能,优势如下:

  • 作为安全管理员,您可以确保敏感数据已加密,因此在存储介质或数据文件被盗或入侵者试图从操作系统访问数据文件时,绕过访问控制数据库。
  • 使用透明存储加密可帮助您解决与安全相关的法规遵从性问题。
  • 您无需创建辅助表、触发器或视图来为授权用户或应用程序解密数据。处理敏感数据的应用程序可以使用透明存储加密提供强大的数据加密,而无需修改应用程序。
  • 对于访问该数据的数据库用户和应用程序,数据被透明地解密。数据库用户和应用程序不需要知道他们正在访问的数据是以加密形式存储的。
  • 透明存储加密可以在线进行,无需停止数据库服务。
  • 数据库系统自动维护密钥管理,用户或应用程序不需要管理加密密钥。

注意的是表空间加密方式和表加密方式是互斥的,同一加密对象不允许同时支持这两种加密方式。

开启透明存储加密

修改 kingbase.conf 文件中 shared_preload_libraries 参数。

shared_preload_libraries = 'sysencrypt'

重启数据库服务

新建数据库需要安装扩展

CREATE EXTENSION sysencrypt;

还需要打开钱包功能:

打开钱包:

OPENUP WALLET WITH PASSWORD “654321”;

关闭钱包:

CLOSEUP WALLET WITH PASSWORD “654321”;

表空间加密

1、关于表空间加密功能

表空间加密能够加密表空间中存储的所有数据。表空间加密在读取和写入操作期间对数据进行加密或解密。

块加密是在数据页面需要同步到外存时进行加密操作;从外存读取数据页面到缓冲区时,首先进行解密操作。内存中的数据都是解密后的数据。当数据从内存落盘时进行加密。

2、表空间加密的限制

表空间是对整个表空间数据加密,所以不受表加密的相关限制,对数据类型、约束和索引都没有要求。

3、表空间加密的系统参数

设置sysencrypt.encrypt_user_tablespace参数,可以指定是否默认对创建的用户表空间加密,默认为false。

4、表空间加密的使用

创建表空间加密

需要在表空间的定义最后加上encrypted关键字,如下所示:

CREATE TABLESPACE tablesspacename LOCATION '@tablespace@' with(encryption = true[, enckey = encryptkey]);

encryption

标识当前表空间是否为加密表空间,true为是,false为否。

enckey

用户自定义的表空间加密密钥,最大有效长度16字节,超出长度会被截断。默认不指定。使用数据库自生成秘钥加密表空间。

TABLESPACE tablespace_name

tablespace_name 是新表要创建于其中的表空间名称。如果没有指定,将参考default_tablespace,如果表是临时的则参考temp_tablespaces。

测试

1、不指定加密表空间,使用默认创建表空间,用户不指定密钥:
CREATE TABLESPACE ENC_TS_KEY_TEST LOCATION '/home/kingbase7/spce' with(encryption = true); 设置加密表空间为默认表空间
set default_tablespace=ENC_TS_KEY_TEST; 创建表和索引,不指定加密表空间
CREATE TABLE TEST_ENC_NOKEY(ID INT, NAME VARCHAR(100)) ;
CREATE INDEX INDEX_ENC ON TEST_ENC_NOKEY(ID); 插入数据,查看表文件
INSERT INTO TEST_ENC_NOKEY VALUES(GENERATE_SERIES(1, 10000), 'KINGBASE');
CHECKPOINT; select sys_relation_filepath('TEST_ENC_NOKEY');
sys_relation_filepath
-----------------------------------------------
sys_tblspc/41144/SYS_12_202209081/12145/41145
(1 row) 查看数据文件已经无法显示完整的字符,说明表TEST_ENC_NOKEY已经被加密了。
hexdump -c 41145 |grep k 2、指定加密表空间设置默认表空间为空
TEST=# set default_tablespace ='';
SET 再继续创建一张表不指定表空间,插入数据并查看,
CREATE TABLE TEST_ENC (ID INT, NAME VARCHAR(100)) ;
INSERT INTO TEST_ENC VALUES(GENERATE_SERIES(1, 100), 'KINGBASE');
CHECKPOINT; select sys_relation_filepath('TEST_ENC');
sys_relation_filepath
-----------------------
base/12145/41149
(1 row)
hexdump -c 41149 |grep k
输出结果可以看到完整的字符串KINGBASE,说明表没有被加密。
没有加密的原因是,取消了默认表空间为加密表空间。 下面再测试一下,指定创建表的表空间为加密表空间
CREATE TABLE TEST_ENC_T (ID INT, NAME VARCHAR(100)) TABLESPACE ENC_TS_KEY_TEST;
INSERT INTO TEST_ENC_T VALUES(GENERATE_SERIES(1, 100), 'KINGBASE') ;
CHECKPOINT; select sys_relation_filepath('TEST_ENC_T');
TEST=# select sys_relation_filepath('TEST_ENC_T');
sys_relation_filepath
-----------------------------------------------
sys_tblspc/41144/SYS_12_202209081/12145/41152
(1 row) hexdump -c 41152 |grep k
输出结果看,没有完整的字符串表现出表中数据,说明表已经被加密,所以,如果没有设置默认表空间为加密表空间,创建表时候需要指定表空间为加密表空间。

总结

加密表空间可以设置为默认表空间,之后在其下创建的表默认就是加密状态。

如果没开启默认表空间为加密表空间参数default_tablespace,创建表时需要指定表空间为加密表空间。

KingbaseES V8R6 表空间加密的更多相关文章

  1. KingbaseES 表空间加密-透明加密

    透明存储加密是指数据在写到磁盘上时对其进行加密,当授权用户重新读取数据时再对其进行解密.加密解密过程对用户都是透明的,无需对应用程序进行修改,授权用户甚至不会注意到数据已经在存储介质上加密.当前的透明 ...

  2. MySQL5.7表空间加密

    MySQL5.7开始支持表空间加密了,增强了MySQL的数据文件的安全性,这是一个很不错的一个功能,这个特性默认是没有启用的,要使用这个功能要安装插件keyring_file. 下面就来看看怎么安装, ...

  3. mysql表空间加密 keyring encryption

    从5.7.11开始,mysql开始支持物理表空间的加密,它使用两层加密架构.包括:master key 和 tablespace key master key用于加密tablespace key,加密 ...

  4. 10. InnoDB表空间加密

    10. InnoDB表空间加密 InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密. 详细信息见官方文档

  5. MySQL InnoDB表空间加密

    从 MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密.该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系统时加 ...

  6. KingbaseES的表空间

    表空间的概念 KingbaseES中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置.实际上表空间就是给表指定一个存储目录. 表空间的作用 通过使用表空间,管理员可以控制一个Kingba ...

  7. OCM_第三天课程:Section1 —》表空间的操作和管理、服务配置

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  8. KingbaseES V8R6备份恢复案例之---自定义表空间指定恢复目录数据恢复

    案例说明: KingbaseES V8R6在通过sys_rman执行物理备份恢复时,可以通过参数'--kb1-path',指定恢复的数据(data)目录,但如果原备份中包含自定义表空间时,需要建立表空 ...

  9. Oracle加密表空间进行数据加密的示例

    接上篇:http://www.cnblogs.com/myrunning/p/4292049.html 1查看数据库版本 2查看当前数据库表空间 从这里看到我们此时数据库里没有加密表空间. 3创建加密 ...

  10. KingbaseES V8R3集群运维案例之---用户自定义表空间管理

    ​案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...

随机推荐

  1. java去除字符串空格

    package test; /** * 去除字符串空格 * * @author xusucheng * @create 2018-07-04 **/ public class RemoveWhites ...

  2. 【Android 逆向】【攻防世界】APK逆向

    1. apk安装到手机,提示输入flag 2. jadx打开apk 定位到checkSN方法 public boolean checkSN(String userName, String sn) { ...

  3. 麒麟系统开发笔记(十二):在国产麒麟系统上编译GDAL库、搭建基础开发环境和基础Demo

    前言   麒麟系统上做全球北斗定位终端开发,北斗GPS发过来的是大地坐标,应用需要的是经纬度坐标,所以需要转换,可以使用公式转换,但是之前涉及到了山He智能一个项目使用WG.   大地坐标简介 概述 ...

  4. re.sub参数之回调函数

    from calendar import month_abbr import re def change_date(m): mon_name = month_abbr[int(m.group(1))] ...

  5. python中操作csv

    示例 import csv with open('t.csv', mode='r', encoding='utf-8') as f: reader_obj = csv.reader(f) # 通过re ...

  6. 【LeetCode数组#4滑动窗口】长度最小的子数组+子数组最大平均数I

    长度最小的子数组 力扣题目链接(opens new window) 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度.如果不存 ...

  7. 【Azure APIM】APIM 策略语句如何读取请求头中所携带的Cookie信息并保存为变量

    问题描述 需要在APIM策略中对请求所携带的Cookie中的token值进行JWT验证,如果获取Cookie中的值并且作为变量保存,然后在JWT 验证中使用呢? 问题解答 第一步:获取Cookie中的 ...

  8. CentOS8安装与配置jdk1.8 与远程分发复制jdk到另一个虚拟机

    安装配置JDK 一.卸载系统自带的OpenJDK及相关的java文件 1.查看系统自带OpenJDK版本 命令介绍: 2.卸载java 命令介绍: 二.下载安装jdk 1.命令式安装 查看JDK软件包 ...

  9. Linux 系统错误码 errno 剖析

    一.errno 介绍 1.1 errno 简介 Linux 中系统调用的错误都存储于错误码 errno 中.errno 由操作系统维护,存储就近发生的错误,即下一次的错误码会覆盖掉上一次的错误. er ...

  10. [.Net 6]写一个简单的文件上传控件后端

    ​此项目是配合上一篇文章[Vue]写一个简单的文件上传控件 - 林晓lx - 博客园 (cnblogs.com) 的后端程序,使用.Net 6项目框架搭建,开发前请安装Visual Studio 20 ...