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_partitions <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-internal#bdrautopartition_partitions>`_
`bdr.autopartition_rules <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-internal#bdrautopartition_rules>`_
`bdr.ddl_epoch <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-internal#bdrddl_epoch>`_
`bdr.ddl_replication <https://www.enterprisedb.com/docs/pgd/latest/reference/pgd-settings#bdrddl_replication>`_
`bdr.global_consensus_journal_details <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrglobal_consensus_journal_details>`_
`bdr.global_lock <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrglobal_lock>`_
`bdr.global_locks <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrglobal_locks>`_
`bdr.group_camo_details <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrgroup_camo_details>`_
`bdr.local_consensus_state <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrlocal_consensus_state>`_
`bdr.local_node_summary <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrlocal_node_summary>`_
`bdr.node <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrnode>`_
`bdr.node_catchup_info <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrnode_catchup_info>`_
`bdr.node_catchup_info_details <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrnode_catchup_info_details>`_
`bdr.node_conflict_resolvers <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrnode_conflict_resolvers>`_
`bdr.node_group <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrnode_group>`_
`bdr.node_local_info <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrnode_local_info>`_
`bdr.node_peer_progress <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrnode_peer_progress>`_
`bdr.node_replication_rates <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrnode_replication_rates>`_
`bdr.node_slots <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrnode_slots>`_
`bdr.node_summary <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrnode_summary>`_
`bdr.replication_sets <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrreplication_sets>`_
bdr.replication_status`bdr.sequences <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrsequences>`_
`bdr.stat_activity <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrstat_activity>`_
`bdr.stat_relation <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrstat_relation>`_
`bdr.stat_subscription <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrstat_subscription>`_ _deprecated_
:ref:`bdr.state_journal_details <User visible catalogs and views>`
`bdr.subscription <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrsubscription>`_
`bdr.subscription_summary <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrsubscription_summary>`_
`bdr.tables <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrtables>`_
`bdr.taskmgr_local_work_queue <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrtaskmgr_local_work_queue>`_
`bdr.taskmgr_work_queue <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrtaskmgr_work_queue>`_
:ref:`bdr.worker_errors <User visible catalogs and views>` _deprecated_
`bdr.workers <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrworkers>`_
`bdr.writers <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrwriters>`_
`bdr.xid_peer_progress`
EXECUTE privilege on:
`bdr.bdr_edition` _deprecated_
`bdr.bdr_version <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrbdr_version>`_
`bdr.bdr_version_num <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrbdr_version_num>`_
`bdr.decode_message_payload <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrdecode_message_payload>`_
`bdr.get_consensus_status <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrget_consensus_status>`_
`bdr.get_decoding_worker_stat <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrget_decoding_worker_stat>`_
`bdr.get_global_locks <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrget_global_locks>`_
`bdr.get_min_required_replication_slots <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrget_min_required_replication_slots>`_
`bdr.get_min_required_worker_processes <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrget_min_required_worker_processes>`_
`bdr.get_raft_status <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrget_raft_status>`_
`bdr.get_relation_stats <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrget_relation_stats>`_
`bdr.get_slot_flush_timestamp <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrget_slot_flush_timestamp>`_
`bdr.get_sub_progress_timestamp`
`bdr.get_subscription_stats <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrget_subscription_stats>`_
`bdr.lag_control <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrlag_control>`_
`bdr.lag_history <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrlag_history>`_
`bdr.node_catchup_state_name <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrnode_catchup_state_name>`_
`bdr.node_kind_name <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrnode_kind_name>`_
`bdr.peer_state_name <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrpeer_state_name>`_
`bdr.pglogical_proto_version_ranges <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrpglogical_proto_version_ranges>`_
`bdr.show_subscription_status <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrshow_subscription_status>`_
`bdr.show_workers <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrshow_workers>`_
`bdr.show_writers <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrshow_writers>`_
`bdr.stat_get_activity <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrstat_get_activity>`_
`bdr.wal_sender_stats <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrwal_sender_stats>`_
`bdr.worker_role_id_name <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrworker_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.group_raft_details <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrgroup_raft_details>`_
`bdr.group_replslots_details <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrgroup_replslots_details>`_
`bdr.group_subscription_summary <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrgroup_subscription_summary>`_
`bdr.group_versions_details <https://www.enterprisedb.com/docs/pgd/latest/reference/catalogs-visible#bdrgroup_versions_details>`_
`bdr.raft_instances`
EXECUTE privilege on:
`bdr.get_raft_instance_by_nodegroup <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrget_raft_instance_by_nodegroup>`_
`bdr.monitor_camo_on_all_nodes <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrmonitor_camo_on_all_nodes>`_
`bdr.monitor_group_raft <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrmonitor_group_raft>`_
`bdr.monitor_group_versions <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrmonitor_group_versions>`_
`bdr.monitor_local_replslots <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrmonitor_local_replslots>`_
`bdr.monitor_raft_details_on_all_nodes <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrmonitor_raft_details_on_all_nodes>`_
`bdr.monitor_replslots_details_on_all_nodes <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrmonitor_replslots_details_on_all_nodes>`_
`bdr.monitor_subscription_details_on_all_nodes <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrmonitor_subscription_details_on_all_nodes>`_
`bdr.monitor_version_details_on_all_nodes <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrmonitor_version_details_on_all_nodes>`_
`bdr.node_group_member_info <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrnode_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.alter_sequence_set_kind <https://www.enterprisedb.com/docs/pgd/latest/reference/sequences#bdralter_sequence_set_kind>`_
`bdr.create_conflict_trigger <https://www.enterprisedb.com/docs/pgd/latest/reference/streamtriggers/interfaces#bdrcreate_conflict_trigger>`_
`bdr.create_transform_trigger <https://www.enterprisedb.com/docs/pgd/latest/reference/streamtriggers/interfaces#bdrcreate_transform_trigger>`_
`bdr.drop_trigger <https://www.enterprisedb.com/docs/pgd/latest/reference/streamtriggers/interfaces#bdrdrop_trigger>`_
`bdr.get_configured_camo_partner <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrget_configured_camo_partner>`_
`bdr.global_lock_table <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrglobal_lock_table>`_
`bdr.is_camo_partner_connected <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdris_camo_partner_connected>`_
`bdr.is_camo_partner_ready <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdris_camo_partner_ready>`_
`bdr.logical_transaction_status <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrlogical_transaction_status>`_
bdr.ri_fkey_trigger`bdr.seq_nextval <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrseq_nextval>`_
`bdr.seq_currval <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrseq_currval>`_
`bdr.seq_lastval <https://www.enterprisedb.com/docs/pgd/latest/reference/functions-internal#bdrseq_lastval>`_
`bdr.trigger_get_committs <https://www.enterprisedb.com/docs/pgd/latest/reference/streamtriggers/rowfunctions#bdrtrigger_get_committs>`_
`bdr.trigger_get_conflict_type <https://www.enterprisedb.com/docs/pgd/latest/reference/streamtriggers/rowfunctions#bdrtrigger_get_conflict_type>`_
`bdr.trigger_get_origin_node_id <https://www.enterprisedb.com/docs/pgd/latest/reference/streamtriggers/rowfunctions#bdrtrigger_get_origin_node_id>`_
`bdr.trigger_get_row <https://www.enterprisedb.com/docs/pgd/latest/reference/streamtriggers/rowfunctions#bdrtrigger_get_row>`_
`bdr.trigger_get_type <https://www.enterprisedb.com/docs/pgd/latest/reference/streamtriggers/rowfunctions#bdrtrigger_get_type>`_
`bdr.trigger_get_xid <https://www.enterprisedb.com/docs/pgd/latest/reference/streamtriggers/rowfunctions#bdrtrigger_get_xid>`_
`bdr.wait_for_camo_partner_queue <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrwait_for_camo_partner_queue>`_
`bdr.wait_slot_confirm_lsn <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrwait_slot_confirm_lsn>`_
`bdr.wait_node_confirm_lsn <https://www.enterprisedb.com/docs/pgd/latest/reference/functions#bdrwait_node_confirm_lsn>`_
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.