配置 Kerberos 验证

要在 Oracle GoldenGate for Oracle AI Database 中启用 Kerberos 验证,将假定以下配置:

实施和使用 Kerberos 账户从 Oracle GoldenGate 访问 Oracle AI Database

要在 Oracle GoldenGate 微服务体系结构中开始 Kerberos 验证,需要在使用 DBLOGIN 之前先创建数据库用户帐户别名。

CONNECT http://localhost:9005 as ggadmin password We1come_$

以下示例使用部署 demo 为 kerberos 帐户设置用户 ID 别名:

ALTER CREDENTIALSTORE ADD USER
/@EAST nopassword alias dbeast

2020-06-22T21:08:33Z  INFO OGG-15102  Credential store created.
2020-06-22T21:08:33Z  INFO OGG-15114  Credential store altered.

INFO CREDENTIALSTORE

Default domain: OracleGoldenGate
  Alias: dbeast
  Userid: /@EAST

DBLOGIN USERIDALIAS dbeast

Successfully logged into database EAST.

此处,NET SERVICE 是数据库服务的简单名称。或者,可以使用完整的连接字符串(描述符)代替 Oracle 网络服务名。

下面是预定义的网络服务名称和连接描述符映射的示例:

EAST = (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=db1))
(CONNECT_DATA=(SERVICE_NAME=EAST.regress.rdbms.test.us.oracle.com)))

然后,可以将不带 USERID 和口令的有效 DBLOGIN 命令指定为:

DBLOGIN USERID /@EAST

要了解更多信息,请参见 ALTER CREDENTIALSTORE 、DBLOGIN USERIDALIAS 和 MININGDBLOGIN 命令。另请参见 USERIDALIAS 参数。

在 Oracle GoldenGate 端,如果要向经过外部验证的不同用户发出 DBLOGIN 命令,则会在 SQLNET.ORA 文件中指定默认 Kerberos 高速缓存位置的使用。然后,假定这是用于登录到数据库的外部验证用户。

例如,观察客户机端 SQLNET.ORA 文件中指定的 Kerberos 高速缓存位置:

SQLNET.KERBEROS5_CONF = /test/b/1234567890/oracle/work/krb/krb.conf
SQLNET.KERBEROS5_KEYTAB = /test/b/9876543210/oracle/work/krb/v5srvtab
SQLNET.KERBEROS5_CC_NAME = /test/b/1234506789/oracle/work/krb/krb.cc

在此示例中,krb.cc 是此 Oracle GoldenGate 部署中使用的 Kerberos 高速缓存。如果使用 oklist 实用程序打开 krb.cc 高速缓存文件,则可以看到缺省主体用作外部验证的用户 oratst@US.ORACLE.COM。

[ demo_vw2 ] [demo@test02swv krb]$ oklist krb.cc

Kerberos Utilities for Linux: Version 21.0.0.0.0 - Production on 27-JUN-2025 23:59:13

Copyright (c) 1996, 2025 Oracle.  All rights reserved.

Configuration file : /test/b/1234567890/oracle/work/krb/krb.conf
Ticket cache: FILE:krb.cc
Default principal: oratst@US.ORACLE.COM

Valid starting     Expires            Service principal
06/27/20 12:12:34  06/28/20 12:12:34  krbtst/US.ORACLE.COM@US.ORACLE.COM
06/27/20 12:12:34  06/28/20 12:12:34  oratst/demo2swv.us.oracle.com@US.ORACLE.COM

使用 MA 配置 Kerberos 验证

下面是从管理客户机配置 kerberos 验证的步骤。从 Oracle GoldenGate 26ai 开始,可以使用 NOPASSWORD 选项或关键字 KERBEROS 来设置 kerberos 帐户的凭证。

从管理客户机连接到管理服务:

CONNECT http://localhost:9005 DEPLOYMENT oggdep as ggadmin PASSWORD We1come_$

使用 KERBEROS 连接到部署 oggdep 的管理服务后,更改身份证明存储:

ALTER CREDENTIALSTORE ADD USER /@dbwest ALIAS ggwest KERBEROS ALIAS u1alias;

输出显示:

2020-06-22T21:08:33Z  INFO OGG-15102  Credential store created.
2020-06-22T21:08:33Z  INFO OGG-15114  Credential store altered.

如果使用 NOPASSWORD 选项,该命令将类似于以下内容:

ALTER CREDENTIALSTORE ADD USER /@dbwest NOPASSWORD ALIAS u1alias;

运行以下命令以验证身份证明存储是否已成功更改:

INFO CREDENTIALSTORE

输出显示以下信息:

Default domain: OracleGoldenGate
  Alias: ggeast
  Userid: /@DBEAST
  Type: Kerberos

使用 MA Web UI 创建凭证时,如果用户 ID 字段以 / 字符开头,则不需要密码。因此,在 User ID 字段中,输入 /connect_string ,其中 connect_string 是您的连接字符串。

此处,NET SERVICE 是数据库服务的简单名称。或者,可以使用完整的连接字符串(描述符)代替 Oracle 网络服务名。

下面是预定义的网络服务名称和连接描述符映射的示例:

DBEAST = (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=db1))
(CONNECT_DATA=(SERVICE_NAME=DBEAST.regress.rdbms.test.example.com)))

示例:在 Kerberos 帐户的参数文件中使用 USERIDALIAS

以下示例说明如何在创建使用 Kerberos 验证的身份证明存储之后在参数文件中设置 USERIDALIAS 值:

假设旧语法和新语法都有效。

使用 KERBEROS 关键字的 Kerberos 验证:

ALTER CREDENTIALSTORE ADD USER /@ggadmin KERBEROS ALIAS u1alias;

使用 NOPASSWORD 进行 Kerberos 验证

ALTER CREDENTIALSTORE ADD USER /@ggadmin NOPASSWORD ALIAS ggadmin
2020-12-17T21:08:33
INFO    OGG-15102  Credential store created.2020-12-17T21:08:33
INFO    OGG-15114  Credential store altered.
ALTER CREDENTIALSTORE ADD USER /@ggadmin_mining NOPASSWORD ALIAS ggadmin_mining
2020-12-17T21:09:45
INFO    OGG-15102  Credential store created.2020-12-17T21:09:45
INFO    OGG-15114  Credential store altered.
INFO CREDENTIALSTORE

此命令的输出如下所示:

Default domain: OracleGoldenGate
Alias: ggadmin
Userid: /@ggadmin
Type: Kerberos
Default domain: OracleGoldenGate
Alias: ggadmin_mining
Userid: /@ggadmin_mining
Type: Kerberos

更改身份证明存储后,可以在参数文件中指定 USERIDALIAS 选项:

USERIDALIAS ggadmin
DOMAIN OracleGoldenGate
TRANLOGOPTIONS MININUSERIDLIAS ggadmin_mining
DOMAIN OracleGoldenGate