@@ -209,7 +209,25 @@ GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup
209209COMMIT;
210210```
211211
212- For PostgreSQL >= 9.6:
212+ For PostgreSQL 9.6:
213+ ```
214+ BEGIN;
215+ CREATE ROLE backup WITH LOGIN;
216+ GRANT USAGE ON SCHEMA pg_catalog TO backup;
217+ GRANT EXECUTE ON FUNCTION pg_catalog.current_setting(text) TO backup;
218+ GRANT EXECUTE ON FUNCTION pg_catalog.pg_is_in_recovery() TO backup;
219+ GRANT EXECUTE ON FUNCTION pg_catalog.pg_start_backup(text, boolean, boolean) TO backup;
220+ GRANT EXECUTE ON FUNCTION pg_catalog.pg_stop_backup(boolean) TO backup;
221+ GRANT EXECUTE ON FUNCTION pg_catalog.pg_create_restore_point(text) TO backup;
222+ GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_xlog() TO backup;
223+ GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_xlog_replay_location() TO backup;
224+ GRANT EXECUTE ON FUNCTION pg_catalog.txid_current() TO backup;
225+ GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup;
226+ GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;
227+ COMMIT;
228+ ```
229+
230+ For PostgreSQL >= 10:
213231```
214232BEGIN;
215233CREATE ROLE backup WITH LOGIN;
@@ -220,6 +238,7 @@ GRANT EXECUTE ON FUNCTION pg_catalog.pg_start_backup(text, boolean, boolean) TO
220238GRANT EXECUTE ON FUNCTION pg_catalog.pg_stop_backup(boolean, boolean) TO backup;
221239GRANT EXECUTE ON FUNCTION pg_catalog.pg_create_restore_point(text) TO backup;
222240GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_wal() TO backup;
241+ GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_wal_replay_lsn() TO backup;
223242GRANT EXECUTE ON FUNCTION pg_catalog.txid_current() TO backup;
224243GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup;
225244GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;
@@ -307,10 +326,10 @@ GRANT EXECUTE ON FUNCTION bt_index_check(oid, bool) TO backup;
307326If you are going to use PTRACK backups, complete the following additional steps:
308327
309328- Set the parameter ` ptrack_enable ` to ` on ` .
310- - Grant the rights to execute ptrack functions to the * backup* role:
329+ - Grant the rights to execute ` ptrack ` functions to the * backup* role:
311330
312- GRANT EXECUTE ON FUNCTION pg_ptrack_clear() TO backup;
313- GRANT EXECUTE ON FUNCTION pg_ptrack_get_and_clear(oid, oid) TO backup;
331+ GRANT EXECUTE ON FUNCTION pg_catalog. pg_ptrack_clear() TO backup;
332+ GRANT EXECUTE ON FUNCTION pg_catalog. pg_ptrack_get_and_clear(oid, oid) TO backup;
314333- The * backup* role must have access to all the databases of the cluster.
315334
316335## Command-Line Reference
0 commit comments