透明存储加密优势

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

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

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

开启透明存储加密

修改 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. MySQL的经典SQL优化12例(更新于2023年12月28日)

    下列优化的SQL案例,区别于平常加SQL索引的方法优化,大部分都是通过改写SQL语句方法优化,都是日常优化线上慢SQL的实际案例,有比较好的代表性(思路和方法),也是对自己这些年来做SQL优化的总结, ...

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

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

  3. Flask AttributeError 'Request' object has no attribute 'is_xhr'解决办法

    flask版本0.12.5 运行时会报以上错误,原因是因为werkzeug的版本大于等于1.x版本. 解决办法,降低werkzeug的版本即可 pip uninstall Werkzeug pip i ...

  4. 【LeetCode二叉树#15】二叉搜索树的最小绝对差(巩固迭代中序遍历#2)

    二叉搜索树的最小绝对差(迭代法中序遍历巩固) 力扣题目链接(opens new window) 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值. 示例: 提示:树中至 ...

  5. Vue源码学习(十):关于dep和watcher使用的一些思考

    好家伙,   前面想了好久,都没想明白为什么要dep和watcher打配合才能实现数据-视图同步 为什么要多一个依赖管理这样的东西 给每个数据绑个watcher(xxfunction),然后,数据变了 ...

  6. 三分钟数据持久化:Spring Boot, JPA 与 SQLite 的完美融合

    三分钟,迎接一个更加高效和简便的开发体验. 在快节奏的软件开发领域,每一个简化工作流程的机会都不容错过.想要一个无需繁琐配置.能够迅速启动的数据持久化方案吗?这篇文章将是你的首选攻略.在这里,我们将向 ...

  7. 非正式全面解析 NebulaGraph 中 Session 管理

    NebulaGraph 论坛最近有些讨论帖,各种姿势来问 NebulaGraph Session 管理相关的事情,我寻思这也不是一个法子,还是来写一篇文章来讲述下 NebulaGraph 中的 Ses ...

  8. 没想到,JDBC 驱动会偷偷修改 sql_mode 的会话值

    最近碰到一个 case,值得分享一下. 现象就是一个 update 操作,在 mysql 客户端中执行提示 warning,但在 java 程序中执行却又报错. 问题重现 mysql> crea ...

  9. C#与C互操作

    C#给C++传递char**(转载) extern "C" _declspec(dllexport)void GetResult(char* a,char** pBuf) { sp ...

  10. Netty笔记(2) - 基本实现与异步模型

    示例内容: 服务端监听6668端口 , 客户端连接 并发送信息给服务端 ,服务端收到信息打印 并返回信息给客户端 服务端代码: public class NettyServer { public st ...