PGD predefined roles#
PGD predefined roles are created when the BDR extension is installed. After BDR extension is dropped from a database, the roles continue to exist. You need to drop them manually if dropping is required.
bdr_superuser#
This role is for an admin user that can manage anything PGD related. It allows you to separate management of the database and table access. Using it allows you to have a user that can manage the PGD cluster without giving them PostgreSQL superuser privileges.
Privileges#
ALL PRIVILEGES ON ALL TABLES IN SCHEMA BDR
ALL PRIVILEGES ON ALL ROUTINES IN SCHEMA BDR
bdr_read_all_stats#
This role provides read access to most of the tables, views, and functions that users or applications may need to observe the statistics and state of the PGD cluster.
Privileges#
SELECT privilege on:
bdr.replication_statusbdr.stat_subscription _deprecated_
bdr.worker_errors _deprecated_
bdr.xid_peer_progress
EXECUTE privilege on:
bdr.bdr_edition _deprecated_
bdr.get_sub_progress_timestamp
bdr_monitor#
This role provides read access to any tables, views, and functions that users or applications may need to monitor the PGD cluster. It includes all the privileges of the bdr_read_all_stats role.
Privileges#
All privileges from bdr_read_all_stats plus the following additional privileges:
SELECT privilege on:
bdr.raft_instances
EXECUTE privilege on:
bdr_application#
This role is designed for applications that require access to PGD features, objects, and functions such as sequences, CRDT datatypes, CAMO status functions, or trigger management functions.
Privileges#
EXECUTE privilege on:
All functions for column_timestamps datatypes
All functions for CRDT datatypes
bdr.ri_fkey_trigger
Many of these functions require additional privileges before you can use
them. For example, you must be the table owner to successfully execute
bdr.alter_sequence_set_kind . These additional rules are described
with each specific function.
bdr_read_all_conflicts#
PGD logs conflicts into the bdr.conflict_history
table. Conflicts are visible only to table owners, so no extra privileges are required for the owners to read the conflict history.
However, if it’s useful to have a user that can see conflicts for all
tables, you can optionally grant the role bdr_read_all_conflicts to
that user.
Privileges#
An explicit policy is set on bdr.conflict_history that allows this role to
read the bdr.conflict_history table.