达梦数据库存储加密测试(半透明/非透明)


测试中使用的用户有两个,一是SYSDBA,一是TEST,默认建表使用TEST用户创建。

半透明加密

用户密钥

用户密钥:创建用户时可以指定存储加密的密钥,这个密钥就是为了进行半透明加密时使用的。创建用户时指定密钥的方式如下:
一、图形化界面
在这里插入图片描述

二、命令

create user "TEST" identified by "123456789" encrypt by "enc_003"; --此时,enc_003为密钥口令

列的半透明加密设置

如果在创建用户时并没有指定存储加密密钥,系统也会自动为用户生成一个默认的加密密钥。如果在创建表或修改表时指定对表列进行半透明加密,DM 会使用用户的存储加密密钥对数据进行加密。
一、图形化界面(使用DM管理工具,右键表名,选择“修改)
在这里插入图片描述

二、命令

CREATE TABLE TEST_ENCRYPT7(C1 INT, C2 INT ENCRYPT WITH DES_ECB MANUAL);

测试

一、不加密创建表TEST_ENCRYPT7

CREATE TABLE TEST_ENCRYPT7(C1 INT, C2 INT);

向表中插入数据

insert into TEST.TEST_ENCRYPT7 VALUES (1,2);
insert into TEST.TEST_ENCRYPT7 VALUES (3,4);
commit;

使用test用户和sysdba用户分别查看数据:

select * from TEST.TEST_ENCRYPT7;

查询结果均为

SQL> select * from test.test_encrypt7;
行号       C1          C2
---------- ----------- -----------
1          1           2
2          3           4

二、设置列加密
在这里插入图片描述
查看数据:
test查看数据:

SQL> select * from test.test_encrypt7;
行号       C1          C2
---------- ----------- -----------
1          1           2
2          3           4

sysdba查看数据:

SQL> select * from test.test_encrypt7;
行号       C1          C2
---------- ----------- -----------
1          1           NULL
2          3           NULL

三、使用sysdba插入数据

insert into TEST.TEST_ENCRYPT7 VALUES (5,6);
commit;

SQL> select * from test01.test_encrypt7;
行号       C1          C2
---------- ----------- -----------
1          1           NULL
2          3           NULL
3          5           6

使用test查看:

SQL> select * from test_encrypt7;
行号       C1          C2
---------- ----------- -----------
1          1           2
2          3           4
3          5           NULL

可以看出,非透明加密模式只能看到自己插入的数据。

非透明加密

非透明加密通过用户调用存储加密函数来进行,可以参考达梦官方手册《DM8安全管理》。
测试中使用对varchar类型加密的函数CFALGORITHMSENCRYPT,包含三个参数,使用方法例如:CFALGORITHMSENCRYPT(‘test’, 514, ‘测试口令’),其中,“test”为需要加密的varchar字段,“514”为加密算法,“测试口令”为KEY 采用的密钥。

测试

一、创建表

CREATE TABLE test.enc_004(c1 VARCHAR(200));

二、插入数据

INSERT INTO test.enc_004 VALUES(CFALGORITHMSENCRYPT('test', 514, '测试口令'));
commit;

三、 在sysdba和test用户下查询表中的数据:
查询结果均为:

SQL> select * from enc_004;
行号       C1
---------- ----------------------------------
1          B969389614197FC0B39C56B550C0E496FE

四、 在sysdba和test用户下调用解密函数查询:
两个用户下查询结果均为:

SQL> SELECT CFALGORITHMSDECRYPT(c1, 514, '测试口令') FROM enc_004;
行号       CFALGORITHMSDECRYPT(C1,514,'测试口令')
---------- --------------------------------------
1          test
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值