Re: Allow pg_read_all_stats to read replication origin status - Mailing list pgsql-hackers

From Virender Singla
Subject Re: Allow pg_read_all_stats to read replication origin status
Date
Msg-id CAM6Zo8yjpSDYLgKqN=P7dpbsVzQKKp+rO=Kywa+iNuTCao_r8w@mail.gmail.com
Whole thread
In response to RE: Allow pg_read_all_stats to read replication origin status  ("Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>)
List pgsql-hackers
> While checking the old discussion, there was alternative approach to export the
> pg_replication_origin_status to public [1], which might also be good. local_id is
> an internal identifier which is not sensitive, external_id is already public on
> pg_replication_origin, and remote/local_lsn are also visible on other views.
> Can you evaluate it also?

Thanks for pointing that out. I looked at how the existing
replication related views handle access.

Open to PUBLIC (all rows, all columns):
  pg_replication_slots      restart_lsn, confirmed_flush_lsn, etc.
                            slotfuncs.c notes that nothing here
                            should be sensitive.
  pg_stat_subscription      received_lsn, latest_end_lsn

Row visible to PUBLIC, LSNs need pg_read_all_stats:
  pg_stat_replication       state, *_lsn, *_lag, sync_* are NULL
                            without pg_read_all_stats, even for
                            the user's own walsender rows. Only the
                            connection columns (client_addr,
                            backend_start, ...) follow the usual
                            "own role or pg_read_all_stats" rule.
  pg_stat_wal_receiver      all columns except pid are NULL

So I don't see a single consistent rule for choosing between the two
approaches. There are existing replication-related views following
both models: pg_replication_slots and pg_stat_subscription expose
replication LSNs publicly, while pg_stat_replication and
pg_stat_wal_receiver expose only the PID publicly and require
pg_read_all_stats for the detailed replication state and LSN
information.
Given this mixed precedent, granting access to pg_read_all_stats seems
like the more conservative option for pg_replication_origin_status.

Regards,
Virender



pgsql-hackers by date:

Previous
From: Rui Zhao
Date:
Subject: Re: index prefetching
Next
From: Nazir Bilal Yavuz
Date:
Subject: Re: [PATCH] Fix TAP tests with recent IPC::Run on Windows