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.autopartition_partitionsbdr.autopartition_rulesbdr.replication_statusbdr.stat_subscription deprecated
bdr.worker_errors deprecated
bdr.xid_peer_progress
EXECUTE privilege on:
bdr.bdr_editiondeprecatedbdr.get_min_required_replication_slotsbdr.get_min_required_worker_processesbdr.get_sub_progress_timestampbdr.lag_historybdr.pglogical_proto_version_rangesbdr.stat_get_activitybdr.worker_role_id_name
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.get_raft_instance_by_nodegroupbdr.monitor_camo_on_all_nodesbdr.monitor_raft_details_on_all_nodesbdr.monitor_replslots_details_on_all_nodesbdr.monitor_subscription_details_on_all_nodesbdr.monitor_version_details_on_all_nodesbdr.node_group_member_info
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.