在Ubuntu上实现Oracle数据库数据加密,可采用以下方式:
透明数据加密(TDE)
$ORACLE_HOME/network/admin/sqlnet.ora
中指定钱包路径,创建钱包并设置密码。mkdir -p /u01/app/oracle/admin/ORCL/wallet
orapki wallet create -wallet /u01/app/oracle/admin/ORCL/wallet -pwd "WalletPassword"
CREATE TABLESPACE secure_ts DATAFILE '/u01/oradata/ORCL/secure01.dbf' SIZE 100M
ENCRYPTION USING 'AES256' DEFAULT STORAGE(ENCRYPT);
列级加密(TDE)
ALTER TABLE
修改现有列。CREATE TABLE sensitive_data (id NUMBER, ssn VARCHAR2(11) ENCRYPT);
使用DBMS_CRYPTO包(应用层加密)
DECLARE
l_key RAW(128) := UTL_RAW.CAST_TO_RAW('MySecretKey');
l_data RAW(2000) := UTL_RAW.CAST_TO_RAW('Sensitive Data');
l_encrypted RAW(2000);
BEGIN
l_encrypted := DBMS_CRYPTO.ENCRYPT(l_data, DBMS_CRYPTO.AES256_CBC_PKCS5, l_key);
END;
注意事项:
参考来源: