配置 Kerberos 验证
要在 Oracle GoldenGate for Oracle AI Database 中启用 Kerberos 验证,将假定以下配置:
-
配置了 Kerberos KDC,并在本地安装了 Kerberos 系统。
-
Kerberos 主体是为经过外部验证的数据库用户配置的。
-
在本地为每个 Kerberos 主体配置 Kerberos 高速缓存。
-
已正确配置 Oracle Net Services。
-
Oracle Server 参数文件配置有与 Kerberos 相关的设置。
-
以正确权限创建外部验证的数据库用户。
-
为 Oracle GoldenGate 配置了
TNS_ADMIN环境变量。
实施和使用 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