使用ENCKEYS方法加密数据

要使用这种数据加密方法,您需要配置Oracle GoldenGate以生成加密密钥并将密钥存储在本地ENCKEYS文件中。此方法使用的永久密钥只能通过根据使用加密密钥填充ENCKEYS文件中的说明重新生成算法来更改。 ENCKEYS文件必须通过在操作系统中分配文件权限的常规方法进行保护。

此过程生成AES加密密钥并提供将其存储在ENCKEYS文件中的说明。

  • 使用ENCKEYS方法加密数据
  • 使用ENCKEYS方法解密数据
  • 使用ENCKEYS方法进行数据加密的示例

11.3.1 用ENCKEYS方法加密数据

1、生成加密密钥并将其存储在ENCKEYS文件中。请参阅使用加密密钥填充ENCKEYS文件。确保将完成的ENCKEYS文件复制到任何中间系统和所有目标系统上的Oracle GoldenGate安装目录。

2、在以下参数文件中,添加以下内容:

  • 加密trail数据:在主要提取组和数据泵的参数文件中,在指定要加密的路径或文件的任何参数前添加ENCRYPTTRAIL参数。指定路径或文件的参数是EXTTRAIL,RMTTRAIL,EXTFILE和RMTFILE。语法是以下之一:
    ENCRYPTTRAIL {AES128 | AES192 | AES256 | BLOWFISH}
    ENCRYPTTRAIL AES192, KEYNAME keyname
  • 通过TCP / IP对数据进行加密:在数据泵的参数文件(或主要提取程序,如果没有使用泵)的RMTHOSTOPTIONS参数中,使用KEYWORD子句添加ENCRYPT选项。语法是以下之一:
    RMTHOSTOPTIONS host, MGRPORT port, ENCRYPT {AES128 | AES192 | AES256 | BLOWFISH} KEYNAME keyname
    RMTHOSTOPTIONS ENCRYPT {AES128 | AES192 | AES256 | BLOWFISH} KEYNAME keyname

Where:

  • RMTHOSTOPTIONS用于提取。有关被动提取的更多信息,请参阅使用目标系统连接启动。
  • 没有选项的ENCRYPTTRAIL使用AES128作为所有数据库类型的默认值,除了iSeries,z / OS和NonStop平台,其中默认情况下是BLOWFISH。
  • AES128采用AES-128加密算法进行加密。不支持iSeries,z / OS和NonStop平台。
  • AES192采用AES-192加密算法进行加密。不支持iSeries,z / OS和NonStop平台。
  • AES256采用AES-256加密算法进行加密。不支持iSeries,z / OS和NonStop平台。
  • BLOWFISH使用Blowfish加密,具有64位块大小和32位到128位的可变长度密钥大小。如果平台支持,请使用AES。使用BLOWFISH与以前的Oracle GoldenGate版本进行后向兼容,以及在NonStop上使用z / OS,DB2 for i和SQL / MX上的DB2。这些平台不支持AES。
  • KEYNAME keyname指定ENCKEYS文件中加密密钥的逻辑查找名称。不是ENCRYPTTRAIL的选项

除非解压缩处于被动配置,否则将使用RMTHOST。有关更多信息,请参阅使用目标系统连接启动。

3、如果使用通过TCP / IP加密的数据的静态收集器,请将以下参数附加到收集器启动字符串中:

-KEYNAME keyname
-ENCRYPT algorithm

指定的密钥名称和算法必须与RMTHOST的KEYNAME和ENCRYPT选项指定的名称和算法相匹配

11.3.2用ENCKEYS方法解密数据

除非指定了trail加密,否则通过TCP / IP连接加密的数据在写入trail之前会在目标处自动解密。

在trail中加密的数据保持加密状态,除非使用DECRYPTTRAIL参数。在Replicat可以将加密数据应用于目标之前,DECRYPTTRAIL是必需的。除非使用DECRYPTTRAIL和ENCRYPTTRAIL参数,否则数据泵会将加密数据传递到输出trail。如果数据泵必须对数据执行操作,则按以下方式对数据进行解密和加密。

解密数据以便通过数据泵进行处理

将DECRYPTTRAIL参数添加到数据泵的参数文件中。解密算法和密钥必须与用于加密踪迹的密钥匹配(请参阅使用ENCKEYS方法加密数据)

DECRYPTTRAIL {AES128 | AES192 | AES256 | BLOWFISH}

在数据泵处理后加密数据

要在数据泵将其写入输出trail或文件之前加密数据,请在指定这些路径或文件的参数前使用ENCRYPTTRAIL参数。指定trail或文件的参数是EXTTRAIL,RMTTRAIL,EXTFILE和RMTFILE。 ENCRYPTTRAIL参数和trail或文件规范必须在DECRYPTTRAIL参数之后进行。请参阅使用ENCKEYS方法加密数据。

使用ENCRYPTTRAIL指定的算法可能因路径而异。例如,您可以使用AES 128加密本地路径,使用AES 256加密远程路径。

解密数据以供Replicat处理

如果Replicat读取的trail已加密,请将DECRYPTTRAIL参数语句添加到Replicat参数文件。解密算法和密钥必须与用于加密线索的解密算法和密钥相匹配。请参阅使用ENCKEYS方法加密数据。

11.3.3 使用ENCKEYS方法进行数据加密的例子

以下示例显示如何为不同的trail或文件打开和关闭加密。在这个例子中,Extract写入两个本地路径,其中只有一个必须加密。

在Extract配置中,trail bb是未加密的路径,所以它的EXTTRAIL参数放在加密trail aa的ENCRYPTTRAIL参数之前。或者,可以在指定trail bb的EXTTRAIL参数前使用NOENCRYPTTRAIL参数,然后在EXTTRAIL参数指定trail aa之前使用ENCRYPTTRAIL参数。

使用ENCKEYS方法加密数据

在这个例子中,加密数据必须解密,以便数据泵1pump可以对其执行工作。因此,DECRYPTTRAIL参数用于数据泵的参数文件中。要重新加密输出数据,ENCRYPTTRAIL参数必须在DECRYPTTRAIL之后但在输出trail规范之前使用。如果数据泵不需要对数据执行任何操作,则可以省略DECRYPTTRAIL和ENCRYPTTRAIL参数以保留加密到Replicat的所有路径。

Example 11-1 Extract Parameter File

EXTRACT capt
USERIDALIAS ogg
DISCARDFILE /ogg/capt.dsc, PURGE
-- Do not encrypt this trail.
EXTTRAIL /ogg/dirdat/bb
TABLE SALES.*;
-- Encrypt this trail with AES-192.
ENCRYPTTRAIL AES192
EXTTRAIL /ogg/dirdat/aa
TABLE FIN.*;

Example 11-2 Data Pump 1 Parameter File

EXTRACT 1pump
USERIDALIAS ogg
DISCARDFILE /ogg/1pmp.dsc, PURGE
-- Decrypt the trail this pump reads. Use encryption key mykey1.
DECRYPTTRAIL AES192
-- Encrypt the trail this pump writes to, using AES-192.
RMTHOSTOPTIONS myhost1, MGRPORT 7809
ENCRYPTTRAIL AES192
RMTTRAIL /ogg/dirdat/cc
TABLE FIN.*;

Example 11-3 Data pump 2 Parameter File

EXTRACT 2pump
USERIDALIAS ogg
DISCARDFILE /ogg/2pmp.dsc, PURGE
RMTHOST myhost2, MGRPORT 7809
RMTTRAIL /ogg/dirdat/dd
TABLE SALES.*;

Example 11-4 Replicat1 (on myhost1) Parameter File

REPLICAT 1deliv
USERIDALIAS ogg
ASSUMETARGETDEFS
DISCARDFILE /ogg/1deliv.dsc, PURGE
-- Decrypt the trail this Replicat reads. Use encryption key mykey2.
DECRYPTTRAIL AES192
MAP FIN.*, TARGET FIN.*;

Example 11-5 Replicat 2 (on myhost2) parameter file

REPLICAT 2deliv
USERIDALIAS ogg
ASSUMETARGETDEFS
DISCARDFILE /ogg/2deliv.dsc, PURGE
MAP SALES.*, TARGET SALES.*;

参考资料

https://docs.oracle.com/goldengate/c1221/gg-winux/GWUAD/configuring-oracle-goldengate-security.htm#GWUAD1074

上一篇:如何让.gitignore文件生效


下一篇:JAVA中自定义properties文件介绍