《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx

上传人:b****3 文档编号:4316157 上传时间:2023-05-07 格式:DOCX 页数:15 大小:23.67KB
下载 相关 举报
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第1页
第1页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第2页
第2页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第3页
第3页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第4页
第4页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第5页
第5页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第6页
第6页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第7页
第7页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第8页
第8页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第9页
第9页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第10页
第10页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第11页
第11页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第12页
第12页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第13页
第13页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第14页
第14页 / 共15页
《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx

《《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx》由会员分享,可在线阅读,更多相关《《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx(15页珍藏版)》请在冰点文库上搜索。

《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性.docx

《叱咤风云GoldenGate企业级运维实战》第10章GoldenGate的安全特性

第10章GoldenGate的安全特性

GoldenGate软件已经被很多大型企业用于数据容灾。

如果用作异地备份容灾,很多是需要通过租用公网的线路进行传输,而这些数据很多都是企业的机密,为了防止机密数据被黑客获取进而损害企业的利益,需要对GoldenGate的安全做一些增强。

除了通过制定操作系统和数据库级别安全防范措施以外,还可以在GoldenGate层面来制定相应的安全策略。

在本地可以通过加密trail文件和数据库文件来保护GoldenGate抽取到的数据。

在网络传输过程中GoldenGate也可以加密传输的数据,用户可以自己定义key来加密数据,使得黑客就算获取了数据也无法对其解密。

下面来一一介绍着几种保护GoldenGate和数据安全的方法。

10.1加密trail文件

加密extracttrail文件非常的简单,只需要在Extract参数文件中加入ENCRYPTTRAIL参数。

Extract进程就会对加入参数以后生成的trail文件进行加密。

如果生产端trail文件加密,那么在容灾端参数文件中必须加入对应的DECRYPTTRAIL参数解密trail文件再入库。

下面用logdump(查看GoldenGatetrial文件的工具)对比一下加密之前和加密以后trail文件中内容的变化。

没加密之前Extract的内容:

示例10-1:

GGSCI(OE5)55>viewparamsextma

EXTRACTextma

useridGoldenGate@orcl1,passwordGoldenGate

setenv(NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1")

GETTRUNCATES

REPORTCOUNTEVERY1MINUTES,RATE

numfiles50000

DISCARDFILE./dirrpt/extma.dsc,APPEND,MEGABYTES50

WARNLONGTRANS2h,CHECKINTERVAL3m

EXTTRAIL./dirdat/ma

DBOPTIONSALLOWUNUSEDCOLUMN

TRANLOGOPTIONSCONVERTUCS2CLOBS

DYNAMICRESOLUTION

tablescott.*;

没加密之前Extracttrail文件的内容:

示例10-2:

Logdump55>open./dirdat/ma000001

CurrentLogTrailis/opt/GoldenGate/orcl1/dirdat/ma000001

Logdump56>ghdron

Logdump57>detaildata

Logdump58>ggstokendetail

Logdump59>pos0

ReadingforwardfromRBA0

Logdump60>n

Logdump65>n

___________________________________________________________________

Hdr-Ind:

E(x45)Partition:

.(x04)

UndoFlag:

.(x00)BeforeAfter:

A(x41)

RecLength:

23(x0017)I/OTime:

2011/03/2200:

09:

39.000.000

IOType:

5(x05)OrigNode:

255(xff)

TransInd:

.(x00)FormatType:

R(x52)

SyskeyLen:

0(x00)Incomplete:

.(x00)

AuditRBA:

2AuditPos:

29881732

Continued:

N(x00)RecCount:

1(x01)

2011/03/2200:

09:

39.000.000InsertLen23RBA1391

Name:

SCOTT.TEST

AfterImage:

Partition4Gb

0000000500000001310001000a000000066f7261|........1........ora

636c65|cle

Column0(x0000),Len5(x0005)

0000000131|....1

Column1(x0001),Len10(x000a)

000000066f7261636c65|....oracle--可以明

显的看到单词

GGStokens:

TokenIDx52'R'ORAROWIDInfox00Length20

4141414d30584141454141414147574141410001|AAAM0XAAEAAAAGWAAA..

TokenIDx4c'L'LOGCSNInfox00Length6

343839373831|489781

TokenIDx36'6'TRANIDInfox00Length8

392e31302e323939|9.10.299

接下来再在参数文件中加入ENCRYPTTRAIL参数,使其对trail文件加密:

示例10-3:

GGSCI(OE5)55>viewparamsextma

EXTRACTextma

useridGoldenGate@orcl1,passwordGoldenGate

setenv(NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1")

GETTRUNCATES

REPORTCOUNTEVERY1MINUTES,RATE

numfiles50000

DISCARDFILE./dirrpt/extma.dsc,APPEND,MEGABYTES50

WARNLONGTRANS2h,CHECKINTERVAL3m

ENCRYPTTRAIL

EXTTRAIL./dirdat/ma

DBOPTIONSALLOWUNUSEDCOLUMN

TRANLOGOPTIONSCONVERTUCS2CLOBS

DYNAMICRESOLUTION

tablescott.*;

再查看加密后生成的Extracttrail文件内容:

示例10-4:

Logdump66>open./dirdat/ma000002

CurrentLogTrailis/opt/GoldenGate/orcl1/dirdat/ma000002

Logdump67>ghdron

Logdump68>detaildata

Logdump69>ggstokendetail

Logdump74>n

___________________________________________________________________

Hdr-Ind:

E(x45)Partition:

.(x04)

UndoFlag:

.(x00)BeforeAfter:

A(x41)

RecLength:

24(x0018)I/OTime:

2011/03/2200:

35:

13.000.000

IOType:

5(x05)OrigNode:

255(xff)

TransInd:

.(x01)FormatType:

R(x52)

SyskeyLen:

0(x00)Incomplete:

.(x00)

AuditRBA:

2AuditPos:

31891236

Continued:

N(x00)RecCount:

1(x01)

2011/03/2200:

35:

13.000.000InsertLen24RBA1212

Name:

SCOTT.TEST

AfterImage:

Partition4Gm

5e5086baaf70962bcc525bf9a3f797607edaabd0|^P...p.+.R[....`~...

–加密后看到的是不可识别的密文

c092111e|....

Badcompressedblock,foundlengthof34490(x86ba),RBA1212

GGStokens:

TokenIDx52'R'ORAROWIDInfox00Length20

4141414d30584141454141414147574141300001|AAAM0XAAEAAAAGWAA0..

加密后容灾端进程abend。

下面是容灾端进程的参数和错误信息:

示例10-5:

GGSCI(OE5)3>viewparamsrepma

REPLICATrepma

USERIDGoldenGate@orcl2,PASSWORDGoldenGate

setenv(NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1")

--REPORTAT01:

59

REPORTCOUNTEVERY30MINUTES,RATE

REPERRORDEFAULT,abend

numfiles50000

DBOPTIONSALLOWUNUSEDCOLUMN

MAXTRANSOPS500000

GROUPTRANSOPS10000

CHECKPOINTSECS40

--HANDLECOLLISIONS

assumetargetdefs

DISCARDFILE./dirrpt/repma.dsc,APPEND,MEGABYTES50

GETTRUNCATES

ALLOWNOOPUPDATES

mapscott.*,targetscott.*;

-----ERROR信息―――――――

SourceContext:

SourceModule:

[ggstd.conv.endian]

SourceID:

[/mnt/ecloud/workspace/Build_FBO_OpenSys_r11.1.

1.0.11_001_[41228]/perforce/src/gglib/ggstd/

lecnv.c]

SourceFunction:

[convCompSQL]

SourceLine:

[531]

ThreadBacktrace:

[9]elements

:

[/opt/GoldenGate/orcl2/replicat(CMessageContext:

:

AddThreadContext()+0x26)[0x82021d6]]

:

[/opt/GoldenGate/orcl2/replicat(CMessageFactory:

:

CreateMessage(CSourceContext*,unsignedint,...)+0x817)[0x81f8887]]

:

[/opt/GoldenGate/orcl2/replicat(_MSG_ERR_MAP_

COL_INDEX_INVALID(CSourceContext*,DBString<777>const&,int,int,CMessageFactory:

:

Message-

Disposition)+0x8b)[0x81d6c4b]]

:

[/opt/GoldenGate/orcl2/replicat[0x84aa2bc]]

:

[/opt/GoldenGate/orcl2/replicat(ggConvRecLE(char*,

file_def*,int,char,char)+0x4d)[0x84aa3bd]]

:

[/opt/GoldenGate/orcl2/replicat[0x849dd2d]]

:

[/opt/GoldenGate/orcl2/replicat(main+0x1f8b)[0x812670b]]

:

[/lib/libc.so.6(__libc_start_main+0xdc)[0x68de8c]]

:

[/opt/GoldenGate/orcl2/replicat(__gxx_personality_v0+0x1b5)[0x810a171]]

2011-03-2200:

36:

37ERROROGG-01161Badcolumnindex(24144)specifiedfortableSCOTT.TEST,maxcolumns=2.

根据错误信息猜测是由于抽取进程加密了trail文件,Replicat进程无法还原为真实的信息,导致了进程abend。

下面在容灾端参数文件中加入DECRYPTTRAIL参数,让其对trail文件解密并查看进程的状态:

示例10-6:

GGSCI(OE5)3>viewparamsrepma

REPLICATrepma

USERIDGoldenGate@orcl2,PASSWORDGoldenGate

setenv(NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1")

--REPORTAT01:

59

REPORTCOUNTEVERY30MINUTES,RATE

REPERRORDEFAULT,abend

DECRYPTTRAIL-----加入解密参数

numfiles50000

DBOPTIONSALLOWUNUSEDCOLUMN

MAXTRANSOPS500000

GROUPTRANSOPS10000

CHECKPOINTSECS40

--HANDLECOLLISIONS

assumetargetdefs

DISCARDFILE./dirrpt/repma.dsc,APPEND,MEGABYTES50

GETTRUNCATES

ALLOWNOOPUPDATES

mapscott.*,targetscott.*;

GGSCI(OE5)14>infoall

ProgramStatusGroupLagTimeSinceChkpt

MANAGER

REPLICATRUNNINGREPMA00:

00:

0000:

00:

03

加入解密参数后重新启动Replicat进程,Replicat进程显示running状态。

10.2加密数据库密码

可以通过GoldenGate加密一些数据库口令,可以加密的数据库口令大致有下列3种。

GoldenGateExtract、Replicat进程及其他进程登录到数据库的密码。

ASM数据库、GoldenGate需要登录到ASM实例的密码。

GoldenGate开启DDL的情况下,如果生产端执行类似CREATE|ALTER}USERIDENTIFIEDBY的操作,容灾端有参数DDLOPTIONSDEFAULTUSERPASSWORD就会对密码进行加密,使其与生产端的不同。

加密数据库密码的方法如下。

进入GoldenGateGGSCI命令行,然后输入命令:

示例10-7:

ENCRYPTPASSWORD

GoldenGate就会利用默认的key生成一个加密的密码,当然也可以自己指定key来生成加密密码,只需要键入命令:

示例10-8:

CRYPTPASSWORDENCRYPTKEY

是用户自己生成的KEY的一个名字,这个名字和KEY将会保存在本地的ENCKEYS文件中。

当然想使用这个属性,必须生成一个KEY,而且在本地创建一个ENCKEYS文件,并且为这个KEY创建一个名字,那就是keyname。

在用到encryptkey属性时候,有必要先介绍一下生成encryptionkeys的方法。

用户自己定义KEY:

首先要创建一个1到24个字符的keyname,其中不能包含空格和引用,keyvalues最大为128个字节,可以包含数字和字母或者是一个十六进制的字符串加上十六进制的标识符0x,例如:

0x420E61BE7002D63560929CCA17A4E1FB。

利用KEYGEN属性生成KEY:

源端在GoldenGate的安装目录下,在shell下键入命令:

示例10-9:

KEYGEN

可以得到多个KEY,其中:

是生成的加密密码的长度,最大为128字节。

控制要生成的KEY的数量。

示例10-10:

[oracle@OE5orcl1]$./keygen1284

0xA3116324F0C72B3BE328E728C6E75725

0x907B7678A7AB561CAF2532539A1DE72A

0x7EE5894C5D8F817D7B227D7D6E537630

0x6C4F9D201473AC5E481FC82742890536

[oracle@OE5orcl1]$

创建一个名为ENCKEYS的ASCII文件,为生成的每个KEY起一个名字并保存到这个文件中,以便于GoldenGate使用:

示例10-11:

##Encryptionkeys

##KeynameKeyvalue

superkey0xA3116324F0C72B3BE328E728C6E75725

superkey10x907B7678A7AB561CAF2532539A1DE72A

superkey20x7EE5894C5D8F817D7B227D7D6E537630

superkey30x6C4F9D201473AC5E481FC82742890536

然后,使用GoldenGate默认的KEY来加密数据库密码:

示例10-12:

[oracle@OE5orcl1]$./ggsci

OracleGoldenGateCommandInterpreterforOracle

Version11.1.1.0.11Build001

Linux,x86,32bit(optimized),Oracle10onDec6201014:

20:

28

Copyright(C)1995,2010,Oracleand/oritsaffiliates.Allrightsreserved.

GGSCI(OE5)1>ENCRYPTPASSWORDGoldenGate

Nokeyspecified,usingdefaultkey…

Encryptedpassword:

AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC

--这就是生成的加密密码

GGSCI(OE5)2>

复制生成的加密密码按下列方式粘贴到GoldenGate参数文件中。

GoldenGate用户密码:

示例10-13:

USERID,PASSWORD,&ENCRYPTKEY{DEFAULT|}

GGSCI(OE5)5>editparamsextma

EXTRACTextma

--useridGoldenGate@orcl1,passwordGoldenGate

useridGoldenGate@orcl1,passwordAACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGA-EMCQFFBZHVC,ENCRYPTKEYDEFAULT

setenv(NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1")

GETTRUNCATES

REPORTCOUNTEVERY1MINUTES,RATE

numfiles50000

DISCARDFILE./dirrpt/extma.dsc,APPEND,MEGABYTES50

WARNLONGTRANS2h,CHECKINTERVAL3m

EXTTRAIL./dirdat/ma

DBOPTIONSALLOWUNUSEDCOLUMN

TRANLOGOPTIONSCONVERTUCS2CLOBS

DYNAMICRESOLUTION

tablescott.*;

这样在打开参数文件的时候,就看不到密码的明文了。

黑客即使攻破了GoldenGate用户,看到这个配置文件,用里面这个加密的密码也无法登录到数据库,这样就起到了保护数据库数据的作用。

ASMGoldenGate用户访问密码:

示例10-14:

TRANLOGOPTIONSASMUSERSYS@,ASMPASSWORD,ENCRYPTKEY{DEFAULT|}

读者可以自行去试验,这里就不演示了。

CREATE/ALTERUSER密码:

示例10-15:

DDLOPTIONSDEFAULTUSERPASSWORD,ENCRYPTKEY{DEFAULT|}

对参数中名词的解释:

是数据库中用于GoldenGate进程的用户。

对于ASM,用户必须具有SYS权限。

使用命令ENCRYPTPASSWORD得出的加密密码。

ENCRYPTKEYDEFAULT利用GoldenGate默认的KEY生成的加密密码。

ENCRYPTKEY如果在使用命令ENCRYPTPASSWORD的时候使用了ENCRYPTKEY参数,那么在参数文件中也需要加入这个选项。

告诉GoldenGate是使用用户自定义的KEY生成的加密密码。

10.3网络传输加密

GoldenGate在传输数据的时候,默认是不加密的。

可以在GoldenGate通过网络传输数据之前将数据加密,传送到目标端以后,在写入trail文件之前将数据解密。

这样就有效地保护了数据在传输过程中的安全。

加密网络传输

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2