mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-03 02:06:52 +02:00
Default monitoring roles - errata
25fff40798
introduced
default monitoring roles. Apply these corrections:
* Allow access to pg_stat_get_wal_senders()
by role pg_read_all_stats
* Correct comment in pg_stat_get_wal_receiver()
to show it is no longer superuser-only.
Author: Feike Steenbergen
Reviewed-by: Michael Paquier
Apply to HEAD, then later backpatch to 10
This commit is contained in:
parent
ccf312a448
commit
6668a54eb8
@ -1442,7 +1442,8 @@ pg_stat_get_wal_receiver(PG_FUNCTION_ARGS)
|
|||||||
if (!is_member_of_role(GetUserId(), DEFAULT_ROLE_READ_ALL_STATS))
|
if (!is_member_of_role(GetUserId(), DEFAULT_ROLE_READ_ALL_STATS))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Only superusers can see details. Other users only get the pid value
|
* Only superusers and members of pg_read_all_stats can see details.
|
||||||
|
* Other users only get the pid value
|
||||||
* to know whether it is a WAL receiver, but no details.
|
* to know whether it is a WAL receiver, but no details.
|
||||||
*/
|
*/
|
||||||
MemSet(&nulls[1], true, sizeof(bool) * (tupdesc->natts - 1));
|
MemSet(&nulls[1], true, sizeof(bool) * (tupdesc->natts - 1));
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
#include "access/xlog_internal.h"
|
#include "access/xlog_internal.h"
|
||||||
#include "access/xlogutils.h"
|
#include "access/xlogutils.h"
|
||||||
|
|
||||||
|
#include "catalog/pg_authid.h"
|
||||||
#include "catalog/pg_type.h"
|
#include "catalog/pg_type.h"
|
||||||
#include "commands/dbcommands.h"
|
#include "commands/dbcommands.h"
|
||||||
#include "commands/defrem.h"
|
#include "commands/defrem.h"
|
||||||
@ -3242,11 +3243,12 @@ pg_stat_get_wal_senders(PG_FUNCTION_ARGS)
|
|||||||
memset(nulls, 0, sizeof(nulls));
|
memset(nulls, 0, sizeof(nulls));
|
||||||
values[0] = Int32GetDatum(pid);
|
values[0] = Int32GetDatum(pid);
|
||||||
|
|
||||||
if (!superuser())
|
if (!is_member_of_role(GetUserId(), DEFAULT_ROLE_READ_ALL_STATS))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Only superusers can see details. Other users only get the pid
|
* Only superusers and members of pg_read_all_stats can see details.
|
||||||
* value to know it's a walsender, but no details.
|
* Other users only get the pid value to know it's a walsender,
|
||||||
|
* but no details.
|
||||||
*/
|
*/
|
||||||
MemSet(&nulls[1], true, PG_STAT_GET_WAL_SENDERS_COLS - 1);
|
MemSet(&nulls[1], true, PG_STAT_GET_WAL_SENDERS_COLS - 1);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user