1 部署前确认
2 上传并配置文件
cp kms-sdk.yaml 达梦安装目录/bin
mkdir -p 达梦安装目录/bin/external_crypto_libs
cp koal_dm8_crypto.so 达梦安装目录/bin/external_crypto_libs
验证加密引擎依赖库完整
ldd koal_dm8_crypto.so
vi kms-sdk.yaml
修改ak、sk、kms服务器地址和端口
# KMS服务访问码
ak: XBrl5qknUu0MMMfl
sk: QnWo7jOADDQZVMZr
# sk版本号
skVersion: 1
# KMS服务器地址
server: 192.168.0.1
port: 19190
# 是否开启SSL传输模式(需要服务端同时开启)
ssl: false
# SSL协议类型ssl, gmssl; ssl开启有效
protocol: ssl
# 信任证书,ssl开启有效
CA: /etc/CA.crt
# 是否验证服务端证书. ssl开启有效
#authenticate: false
# 超时时间(秒)
timeout: 15
# 日志级别
# debug, info, warn, error, fatal, off
loglevel: debug
# 日志文件路径,可使用绝对路径
logfile: libkms.log
# Kcsp平台配置
kcsp: false
prefix: /KMSapi/1.3.1
#kid: 1547417950816890882182346b229716
# 服务端是否使用sk对返回数据进行加密
# 服务端默认开启
# 当服务端关闭配置时,客户端需要同时关闭此项配置才能获取正确的返回值
#useSkToEncryptData: false
3 重启数据库
单机:bin目录下
./DmServiceXXX restart
主备:找到monitor.ini,bin目录下
./dmmonitor /xx/xx/monitor_manual.ini
login
SYSDBA
xxxxxx
group stop GRP1
group startup GRP1
4 检查是否生效
bin目录下
./disql SYSDBA/xxxxxx:5236
select * from V$EXTERNAL_CIPHERS;
出现四个koal加密方式
5 配置列半透明加密进行测试
列加密模式具备用户隔离,即谁写⼊,谁解密,其他用户无法查看。
SYSDBA用户登入
create table test (col1 varchar(16) encrypt with koal_SM4_attach manual, col2 int);
create user userA identified by "000000000";
grant all on test to userA;
插入数据
SYSDBA用户:
insert into test (col1,col2) values ('hello',1); commit;
USERA用户:
insert into sysdba.test (col1,col2) values ('world',2); commit;
查看数据
SYSDBA用户:
select * from test;
USERA用户:
select * from sysdba.test;
结果:用户应该只能看到自己插入的col2列内容,别人插入的为NULL,但是col1内容都可见
文章
阅读量
获赞