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 is a role 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.
If, though, 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.