#加密
# 存储加密
YashanDB支持表空间级和表级的数据透明加密(TDE,Transparent Data Encryption)。
# 表空间透明加密
表空间透明加密在数据库写入表空间存储介质时自动加密,从存储读取至数据库buffer内时解密,加解密过程对应用程序透明,数据库层的访问控制、SQL查询等都不会受任何影响。
支持采用ASE128或SM4加密算法进行表空间加密。
在创建表空间时需确定该表空间是否启用加密,创建后不能更改。
对于分区表,YashanDB支持各分区可以任意存储在加密或非加密的表空间,即允许只对表的部分数据进行加密。
在加密表空间里创建的表对象,其索引也必须位于一个加密表空间。
# 表透明加密
表加密在写入对应表的存储介质时自动加密,从存储读取至数据库buffer内时解密,对应用程序是透明的,数据库层的访问控制、SQL查询等都不会改变。
支持采用ASE128或SM4加密算法进行列数据加密。
表加密属性一经指定无法修改。
如果同时使用表加密和表空间加密,目标将采用表加密算法。
# 备份集加密
为保证备份数据文件的安全性,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连接默认关闭,在需要通信加密时开启,开启必须同时配置数字证书,否则将导致数据库无法正常启动。