本文内容来自YashanDB官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E6%A6%82%E5%BF%B5%...
存储加密
YashanDB支持表空间级和列级的数据透明加密(TDE,Transparent Data Encryption)。
表空间透明加密在数据库写入表空间存储介质时自动加密,从存储读取至数据库buffer内时解密,加解密过程对应用程序透明,数据库层的访问控制、SQL查询等都不会受任何影响。
- 支持采用ASE128或SM4加密算法进行表空间数据加密。
- 在创建表空间时需确定该表空间是否启用加密,创建后不能更改。
- 对于分区表,YashanDB支持各分区可以任意存储在加密或非加密的表空间,即允许只对表的部分数据进行加密。
- 在加密表空间里创建的表对象,其索引也必须位于一个加密表空间。
列透明加密
列加密在数据经过SQL层时对数据进行透明的加密和解密,用户对加解密过程无感知。插入或更新已加密的列时,会先对目标列值进行截获、加密,然后以密文形式进行保存。查询已加密的列时,会先对目标列值进行解密,然后以明文形式进行结果呈现。
- 支持采用ASE128或SM4加密算法进行列数据加密。
- 同一个表中的不同列,加密算法必须统一。
- 列加密属性一经指定无法修改,且加密列的其他属性也无法修改。
- 对于LSC表的稳态数据列,如果同时指定了列加密和表空间加密,目标列将采用列加密算法。
备份集加密
为保证备份数据文件的安全性,YashanDB支持在备份时指定加密策略。
- 用户可依据自身需求选择不同的加密算法,YashanDB支持AES128、AES192、AES256和国密SM4四种加密算法。
- 备份加密的密钥采用与YashanDB用户口令一致的密码策略,并使用与其相同的密钥保护机制,保证在没有明文密码的情况下不会被破解。
- 可以对控制文件、数据文件、redo文件和bucket文件执行加密备份。
- 备份加密可以在YashanDB提供的任一种备份方式里使用。
- 增量备份的每个备份集需要保证统一都加密或都不加密,且每个备份集的密钥必须保持一致。
- 解密时采用输入密码的方式进行校验。
PL源码加密
默认情况下,用户创建的各项PL对象源代码作为文本被存储在数据库表中。某些源代码可能涉及企业核心业务逻辑等隐私信息,对其进行加密存储也是企业信息安全的重要一环。
yaswrap是YashanDB提供的专用于对PL源代码进行加密包装的工具。
- 可以使用yaswrap对指定代码文件进行加密并输出包装后的文件,避免他人通过数据库视图(例如*\_SOURCE)查看到PL源码。
- 可以直接执行yaswrap加密后的密文创建PL对象(数据库表中存储的也是密文),该PL对象后续仍可正常执行,用户对系统的加/解密无感知。
- 如需重建加密包装后的PL对象,不允许直接在数据库中编辑(直接编辑会导致过程体无法正常执行),需先修改源文本文件再重新使用yaswrap进行加密包装。
网络加密/传输加密
YashanDB对客户端与服务端之间、数据库服务端不同的节点之间的网络通信采用密码协议SSL/TLS等,以保障通信过程中数据的机密性和完整性,同时可对通信双方进行身份认证。
- SSL协议属于应用层(YashanDB会话)和传输层(TCP)之间的协议,对应用层透明,用户无感知。
- YashanDB对登录请求采用标准的X509数字证书进行身份认证,该证书可以经过自签名或者由权威机构签名颁发。
- SSL/TLCP连接默认关闭,在需要通信加密时开启,开启必须同时配置数字证书,否则将导致数据库无法正常启动。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。