涉及环境:win10 + Oracle21 (数据库版本:Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0)
先创建密钥及证书(可视化界面创建或指令都可以)
启动密钥及对指定表指定列加密sql
-- 创建master key文件,指定wallet密码,使用sys用户登录系统,建立加密文件。
alter system set encryption key identified by "pa88w0rd";
-- 启动
alter system set encryption wallet open identified by "pa88w0rd";
-- 关闭
ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "pa88w0rd";
-- 查询要加密的表
select "name" from CUSTOMER;
select "email" from CUSTOMER;
select * from CUSTOMER;
select "email" from C##TESTUSER.CUSTOMER;
select * from C##TESTUSER.emp_test;
-- 复制表
create table emp_test as select * from CUSTOMER;
-- 对指定表的指定列加密
alter table emp_test modify ("email" encrypt);
alter table emp_test modify ("phone_number" encrypt);
-- 查看状态
select * from v$encryption_wallet; -- status为open表示打开
select * from gv$encryption_wallet; -- status为open表示打开
实操示例