OGG 安全特性--加密資料庫密碼

來源:互聯網
上載者:User

二、加密資料庫密碼

可以通過GoldenGate加密一些資料庫口令,可以加密的資料庫口令大致有下列3種。

GoldenGate Extract、Replicat進程及其他進程登入到資料庫的密碼。

ASM資料庫、GoldenGate需要登入到ASM執行個體的密碼。

GoldenGate開啟DDL的情況下,如果生產端執行類似CREATE | ALTER} USER <name> IDENTIFIED BY <password> 的操作,容災端有參數DDLOPTIONS DEFAULTUSERPASSWORD就會對密碼進行加密,使其與生產端的不同。

加密資料庫密碼的方法如下。


進入GoldenGate GGSCI命令列,然後輸入命令:

樣本7:

ENCRYPT PASSWORD <password>

GoldenGate就會利用預設的key產生一個加密的密碼,當然也可以自己指定key來產生加密密碼,只需要鍵入命令:

樣本8:

CRYPT PASSWORD <password> ENCRYPTKEY <keyname>

<keyname>是使用者自己產生的KEY的一個名字,這個名字和KEY將會儲存在本地的ENCKEYS檔案中。當然想使用這個屬性,必鬚生成一個KEY,而且在本地建立一個ENCKEYS檔案,並且為這個KEY建立一個名字,那就是keyname。

在用到encryptkey屬性時候,有必要先介紹一下產生encryption keys的方法。

使用者自己定義KEY:首先要建立一個1到24個字元的keyname,其中不能包含空格和引用,keyvalues最大為128個位元組,可以包含數字和字母或者是一個十六進位的字串加上十六進位的標識符0x,例如:0x420E61BE7002D63560929CCA17A4E1FB。


利用KEYGEN屬性產生KEY:源端在GoldenGate的安裝目錄下,在shell下鍵入         命令:

樣本9:

KEYGEN <key length> <n>

可以得到多個KEY,其中:

<key length>:是產生的加密密碼的長度,最大為128位元組。

<n>:控制要產生的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 <user>, PASSWORD <encrypted_password>, &ENCRYPTKEY {DEFAULT | <keyname>}

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@<ASM_instance_name>, ASMPASSWORD <encrypted_password>, ENCRYPTKEY {DEFAULT | <keyname>}

讀者可以自行去實驗,這裡就不示範了。


CREATE/ALTER USER 密碼:

樣本15:

DDLOPTIONS DEFAULTUSERPASSWORD <encrypted_password>,ENCRYPTKEY {DEFAULT | <keyname>}


對參數中名詞的解釋:

<user id>  是資料庫中用於GoldenGate進程的使用者。對於ASM,使用者必須具有SYS許可權。

<encrypted_password>  使用命令ENCRYPT PASSWORD得出的加密密碼。

ENCRYPTKEY DEFAULT  利用GoldenGate預設的KEY產生的加密密碼。

ENCRYPTKEY <keyname>  如果在使用命令ENCRYPT PASSWORD的時候使用了ENCRYPTKEY <keyname>參數,那麼在參數檔案中也需要加入這個選項。告訴GoldenGate是使用使用者自訂的KEY產生的加密密碼。


oracle視頻教程請關注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.