透明存储加密优势

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

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

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

开启透明存储加密

修改 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. linux中cron表达式指南

    Cron是什么? 简单来讲,cron是基于Unix的系统上的一个实用程序.它使用户能够安排任务在指定的[日期/时间]定期运行.它自然是一个伟大的工具,可以自动运行大量流程,否则需要人工干预. Cron ...

  2. 《系列二》-- 11、Aware是什么

    目录 正文 阅读之前要注意的东西:本文就是主打流水账式的源码阅读,主导的是一个参考,主要内容需要看官自己去源码中验证.全系列文章基于 spring 源码 5.x 版本. 写在开始前的话: 阅读spri ...

  3. 【Android逆向】frida 破解 滚动的天空

    1. apk 安装到手机中 2. 玩十次之后,会提示 充值 3. adb shell dumpsys window | grep mCurrentFocus 查看一些当前activity是哪一个 是 ...

  4. XXL-Job框架入门介绍

    框架概述 框架主页: https://www.xuxueli.com/xxl-job/ 包含组件: 1.调度中心 2.任务执行器 特点: 1.调度中心,任务执行器独立部署,互不影响. 2.调度中心和任 ...

  5. python基础安装虚拟环境

    1.pip install virtualenv或者pip3 install virtualenv 2.在要存放虚拟环境的地方创建一个venv文件夹,用来存放所有创建的虚拟环境,方便查找与管理 3.m ...

  6. 2024年,提升Windows开发和使用体验实践 - 小工具篇

    前言 本来是一篇文章的,不知不觉写成了系列. 其实开工那几天就已经写好了长文,这几天一忙就没连着发了. 本文介绍一些 Windows 上用的小工具. 美化/折腾/小工具 虽然这是在用 Windows ...

  7. java GUI 快速入门

    java 中编写 GUI 有两中工具包,分别为 AWT.Swing. Swing 是 AWT 的拓展,Swing 具有比 AWT 丰富的组件和方法. AWT 和 Swing 都能跨平台使用:AWT 会 ...

  8. Hugo 建站经验之谈

    前言 建站工具,早已不是一个新颖的话题,抛开可视化建站单论开发层面,各类语言都有推出广受欢迎的建站框架,比如 Python 开发的 Pelican,JavaScript 开发的 Hexo,以及市场份额 ...

  9. 一文读懂图数据库 Nebula Graph 访问控制实现原理

    摘要:数据库权限管理对大家都很熟悉,然而怎么做好数据库权限管理呢?在本文中将详细介绍 Nebula Graph 的用户管理和权限管理. 本文首发 Nebula Graph 博客:https://neb ...

  10. mysql-编写脚本-批量插入数据

    一.代码 -- 报工设置,添加数据 set @org_id = '租户id'; set @created_user = 'yike'; set @updated_user = 'yike'; set ...