Table of Contents

Search

  1. Preface
  2. Part 1: PowerExchange CDC Introduction
  3. Part 2: PowerExchange CDC Components
  4. Part 3: PowerExchange CDC Data Sources
  5. Part 4: Change Data Extraction
  6. Part 5: Monitoring and Tuning
  7. Appendix A: DTL__CAPXTIMESTAMP Time Stamps

CDC Guide for Linux, UNIX, and Windows

CDC Guide for Linux, UNIX, and Windows

Granting Permissions Required for CDC

Granting Permissions Required for CDC

You must grant some permissions to the SAP HANA CDC user. Grant the INSERT permission on the schema for the PKLOG and shadow CDC tables, and grant the SELECT and TRIGGER permissions on the schema for the source tables or on individual source tables.
These permissions are in addition to the default permissions for the SAP HANA CDC user, as described in Creating a User for CDC.
The triggers created in the source database schema write metadata about the DML changes to the PKLOG table and also write the DML before images and after images to the CDC tables if you select the Full Audit option. Because the capture process writes change information to the PKLOG and CDC tables, the SAP HANA CDC user must have insert rights for the schema where the PKLOG and CDC tables exist.
To grant permissions on the source database, you can either grant the permissions directly to the SAP HANA CDC user or create a user role and assign it to the SAP HANA CDC user. Whichever method you choose, the user must have SELECT permissions on all tables in the source database that are registered for change data capture.
To enable the database to insert information into the PKLOG and shadow CDC tables, issue the following statement:
GRANT INSERT ON SCHEMA
schema_name
TO [
user_id
|
user_role
];
If you want to capture data from all or most tables in a database, issue the following statement to grant access to all objects in the source database:
GRANT SELECT ON SCHEMA
schema_name
TO [
user_id
|
user_role
]; GRANT TRIGGER ON SCHEMA
schema_name
TO [
user_id
|
user_role
];
If you want to capture data from just a few tables, you can limit access to only those tables by issuing the following statement for each registered table:
GRANT SELECT ON
database.table_name
TO [
user_id
|
user_role
]; GRANT TRIGGER ON
database.table_name
TO [
user_id
|
user_role
];

0 COMMENTS

We’d like to hear from you!