配置与 PostgreSQL 的连接

了解数据库端连接到 Oracle GoldenGate 所需的用户权限以及为 PostgreSQL 设置连接的配置说明。

为 PostgreSQL 授予数据库用户和权限

了解如何创建数据库用户以及为 Oracle GoldenGate 分配 PostgreSQL 的权限。

Oracle GoldenGate 进程要求数据库用户捕获数据并将其传送到 PostgreSQL 数据库,建议为提取和复制创建专用 PostgreSQL 数据库用户。

Oracle GoldenGate 需要以下数据库用户权限才能从 PostgreSQL 数据库捕获并应用到该数据库。

权限 提取 复制 用途

数据库复制权限

CONNECT

是

是

数据库连接是必需的。

GRANT CONNECT ON DATABASE dbname TO gguser;

WITH REPLICATION

是

不适用

用户需要在复制插槽中注册提取。

ALTER USER gguser WITH REPLICATION;

WITH SUPERUSER

是

不适用

启用表级补充日志记录 (ADD TRANDATA) 所需,但在为表启用 TRANDATA 后可以撤消。

ALTER USER gguser WITH SUPERUSER;

对于 Azure Database for PostgreSQL,只有管理员用户具有 SUPERUSER 权限,并且是唯一可以启用 TRANDATA 的用户。

USAGE ON SCHEMA

是

是

用于对要复制的方案中的表的元数据访问。

GRANT USAGE ON SCHEMA tableschema TO gguser;

SELECT ON TABLES

是

是

授予对要复制的表的选择访问权限。

GRANT SELECT ON ALL TABLES IN SCHEMA tableschema TO gguser;

目标表上的 INSERT、UPDATE、DELETE、TRUNCATE。或者,如果复制每个表,则可以使用 GRANT INSERT, UPDATE, DELETE, TRUNCATE ON ALL TABLES IN SCHEMA TO... 复制用户,而不是向每个表授予 INSERT、UPDATE 和 DELETE。

不适用

是

将复制的 DML 应用于目标对象。

GRANT INSERT, UPDATE, DELETE, TRUNCATE ON TABLE tablename TO gguser;

心跳和检查点表权限

CREATE ON DATABASE

是

是

提取和复制用户需要添加 Oracle GoldenGate 方案以创建心跳和检查点表。

GRANT CREATE ON DATABASE dbname TO gguser;

或者,如果 GGSCHEMA 与用户相同,则可以通过发出 CREATE SCHEMA AUTHORIZATION ggsuser; 在用户下创建对象

CREATE, USAGE ON SCHEMA

是

是

用于在提取或复制用户不拥有对象的情况下创建/删除心跳和检查点表。

GRANT CREATE, USAGE ON SCHEMA ggschema TO gguser;

EXECUTE ON ALL FUNCTIONS

是

是

对于脉动更新和清除函数执行,如果调用函数的用户不拥有对象。

GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA ggschema TO gguser;

SELECT, INSERT, UPDATE, DELETE

是

是

对于脉动和检查点表,如果用户不拥有对象,则插入、更新和删除。

GRANT SELECT, INSERT, UPDATE, DELETE, ON ALL TABLES IN SCHEMA ggschema TO gguser;

要专门从 PostgreSQL 备用数据库捕获数据,必须具有 SUPERUSER 权限或 pg_read_all_stats 权限,以及从 PostgreSQL 数据库捕获数据所需的其他权限。