Oracle GoldenGate 学习教程三、加密

1 加密的使用场景

2 GoldenGate提供的加密算法

3 产生密钥

4 源端加密配置

  4.1 配置主抽取进程

  4.2 配置Data Pump进程

5 目标端解密配置

  5.1 Replicat进程配置解密操作

6 未加密和加密trail文件对比分析

  6.1 未加密trail文件分析

  6.2 加密trail文件分析

7 OBEY文件

8 总结

写在开始前

  从上周开始,我花了大量的业余时间阅读GoldenGate官方文档,并根据文档实践和进一步学习了解GoldenGate,以下便是根据官方文档理解总结的GoldenGate学习内容:

Oracle GoldenGate 学习教程一:介绍和安装 

Oracle GoldenGate 学习教程二、配置和使用 

在[美] 莫提默·J.艾德勒,[美] 查尔斯·范多伦著的【How to Read a Book】一书中,作者强调如果你每天所学的知识你不能用你自己的语言去描述或记忆它,那说明你未真正学习和了解所学的知识,So 那以后我改变了我的学习方式,把生搬硬套的学习方式改变为用自己的语言用、自己的了解去描述和记忆知识,描述难免有错,请谅解,也请指导,谢谢!

1 加密的使用场景

GoldenGate参数文件
  在每个Extract进程和Replicat进程的USERID、TRANLOGOPTIONS、DDLOPTIONS、DBOPTIONS参数中都要指定密码,密码是比较敏感又比较重要的信息,因为GoldenGate用户具有比较多的数据库权限,所以有效的保护密码是GoldenGate关于安全的首要之一。

trail文件
  主抽取进程(Primary Extract)从数据库中抽取变更信息并加密写入到trail文件,然后再由Data Pump(Secondly Extract)进程解密实现复杂操作,加密成最终trail文件通过网络发送到目标端,目标端GoldenGate后台collector进程将trail文件保存到目标端trail文件,replicat进程读取文件内容并将其解密、重构、应用到目标库。

GGSCI命令行
  使用DBLOGIN登录数据库时提供的密码。

2 GoldenGate提供的加密算法

AES128
  使用AES 128加密,具有128位的密钥大小

AES192
  使用AES 192加密,具有192位的密钥大小

AES256
  使用AES 256加密,具有256位的密钥大小

BLOWFISH
  使用64位块大小和从32位到128位的可变长度密钥的Blowfish加密,建议只在GoldenGate较早版本中使用,仅在ENCRYPTKEY为DEFAULT时可使用此种加密方式。

3 产生密钥

必须先产生密钥并且保存在ENCKEYS LookUp文件中然后才能使用以下功能

使用ENCRYPT PASSWORD PWD ENCRYPTKEY 生成加密密码

在配置文件参数ENCRYPTTRAIL KEYNAME 中指定trail文件加密方式和密钥名

在配置文件参数RMHOST或RMTHOSTOPTIONS ENCRYPT 中指定加密方式和密钥名

产生密钥
切换到GoldenGate home 目录,使用KEYGEN工具产生密钥;语法:

./keygen <key length> <n>

key length 表示加密密钥的长度;
n 表示产生多少个key;

[oracle@sywu ogg_src]$ ./keygen 128 2 0xDEE44B0133536B0DA1B858620E4A240D 0x71DF8D01C352097FC76BBA31232DA95A

每一次产生的key都是不一样的,产生key后为每一个key定义一个名称(keyName)复制保存到GoldenGate home根目录的ENCKEYS文件内。ENCKEYS文件是一个lookup file。
保存key到ENCKEYS文件

[oracle@sywu ogg_src]$ vim ENCKEYS #GoldenGate encryption key #keyName key securekey1 0xDEE44B0133536B0DA1B858620E4A240D securekey2 0x71DF8D01C352097FC76BBA31232DA95A

在GGSCI命令行通过key对密码加密

GGSCI (sywu) 8> encrypt password ogg_owner aes128 encryptkey securekey1 Encrypted password: AADAAAAAAAAAAAJATJEEYELAGIQFZDWHQAMDMCCHGIVGFIPHOCABMAYCHGSCPHGILCPCLCXCCHUEFGOC Algorithm used: AES128 GGSCI (sywu) 9> encrypt password ogg_owner aes128 encryptkey securekey1 Encrypted password: AADAAAAAAAAAAAJANJBHVDBAGCCBOIUCTJHJVIOCVGBFSGNJFFAAGIOHBJNBWAPANGWILCPFGIXBOIXB Algorithm used: AES128

密码加密后可以尝试使用dblogin登录数据库,验证密码

GGSCI (sywu as ogg_owner@sydb) 11> dblogin userid ogg_owner,password AADAAAAAAAAAAAJANJBHVDBAGCCBOIUCTJHJVIOCVGBFSGNJFFAAGIOHBJNBWAPANGWILCPFGIXBOIXB aes128 encryptkey securekey1 Successfully logged into database.

注意:因为在创建key时指定了key的长度,所以使用时指定的加密类型密钥长度也必须一致。

4 源端加密配置

源端配置主抽取进程加密和Data Pump进程加密。

4.1 配置主抽取进程 GGSCI (sywu as ogg_owner@sydb) 31> EDIT PaRAM ESYDB001 extract ESYDB001 SETENV(ORACLE_SID="sydb") SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8) userid ogg_owner,password AADAAAAAAAAAAAJANJBHVDBAGCCBOIUCTJHJVIOCVGBFSGNJFFAAGIOHBJNBWAPANGWILCPFGIXBOIXB & aes128,ENCRYPTKEY securekey1 ENCRYPTTRAIL aes128,KEYNAME securekey1 EXTTRAIL /u01/app/product/ogg_src/dirdat/es table ogg_owner.togg;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d87fdb881007a9c491100c8f4d58bfa0.html