二、加密数据库密码
可以通过GoldenGate加密一些数据库口令,可以加密的数据库口令大致有下列3种。
GoldenGate Extract、Replicat进程及其他进程登录到数据库的密码。
ASM数据库、GoldenGate需要登录到ASM实例的密码。
GoldenGate开启DDL的情况下,如果生产端执行类似CREATE | ALTER} USER
加密数据库密码的方法如下。
进入GoldenGate GGSCI命令行,然后输入命令:
示例7:
ENCRYPT PASSWORD
GoldenGate就会利用默认的key生成一个加密的密码,当然也可以自己指定key来生成加密密码,只需要键入命令:
示例8:
CRYPT PASSWORD
在用到encryptkey属性时候,有必要先介绍一下生成encryption keys的方法。
用户自己定义KEY:首先要创建一个1到24个字符的keyname,其中不能包含空格和引用,keyvalues最大为128个字节,可以包含数字和字母或者是一个十六进制的字符串加上十六进制的标识符0x,例如:0x420E61BE7002D63560929CCA17A4E1FB。
利用KEYGEN属性生成KEY:源端在GoldenGate的安装目录下,在shell下键入 命令:
示例9:
KEYGEN
可以得到多个KEY,其中:
示例10:
[oracle@OE5 orcl1]$ ./keygen 128 4
0xA3116324F0C72B3BE328E728C6E75725
0x907B7678A7AB561CAF2532539A1DE72A
0x7EE5894C5D8F817D7B227D7D6E537630
0x6C4F9D201473AC5E481FC82742890536
[oracle@OE5 orcl1]$
创建一个名为ENCKEYS的ASCII文件,为生成的每个KEY起一个名字并保存到这个文件中,以便于GoldenGate使用:
示例11:
## Encryption keys
## Key name Key value
superkey 0xA3116324F0C72B3BE328E728C6E75725
superkey1 0x907B7678A7AB561CAF2532539A1DE72A
superkey2 0x7EE5894C5D8F817D7B227D7D6E537630
superkey3 0x6C4F9D201473AC5E481FC82742890536
然后,使用GoldenGate默认的KEY来加密数据库密码:
示例12:
[oracle@OE5 orcl1]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.1.1.0.11 Build 001
Linux, x86, 32bit (optimized), Oracle 10 on Dec 6 2010 14:20:28
Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
GGSCI (OE5) 1> ENCRYPT PASSWORD GoldenGate
No key specified, using default key…
Encrypted password: AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC
--这就是生成的加密密码
GGSCI (OE5) 2>
复制生成的加密密码按下列方式粘贴到GoldenGate参数文件中。
GoldenGate用户密码:
示例13:
USERID
GGSCI (OE5) 5> edit params extma
EXTRACT extma
--userid GoldenGate@orcl1, password GoldenGate
userid GoldenGate@orcl1 , password AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGA-EMCQFFBZHVC , ENCRYPTKEY DEFAULT
setenv (NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1")
GETTRUNCATES
REPORTCOUNT EVERY 1 MINUTES, RATE
numfiles 50000
DISCARDFILE ./dirrpt/extma.dsc,APPEND,MEGABYTES 50
WARNLONGTRANS 2h,CHECKINTERVAL 3m
EXTTRAIL ./dirdat/ma
DBOPTIONS ALLOWUNUSEDCOLUMN
TRANLOGOPTIONS CONVERTUCS2CLOBS
DYNAMICRESOLUTION
table scott.* ;
这样在打开参数文件的时候,就看不到密码的明文了。黑客即使攻破了GoldenGate用户,看到这个配置文件,用里面这个加密的密码也无法登录到数据库,这样就起到了保护数据库数据的作用。
ASM GoldenGate用户访问密码:
示例14:
TRANLOGOPTIONS ASMUSER SYS@
读者可以自行去试验,这里就不演示了。
CREATE/ALTER USER 密码:
示例15:
DDLOPTIONS DEFAULTUSERPASSWORD
对参数中名词的解释:
ENCRYPTKEY DEFAULT 利用GoldenGate默认的KEY生成的加密密码。
ENCRYPTKEY