mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-04 00:02:52 -05:00 
			
		
		
		
	Default monitoring roles - errata
25fff40798fc4ac11a241bfd9ab0c45c085e2212 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))
 | 
			
		||||
	{
 | 
			
		||||
		/*
 | 
			
		||||
		 * 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.
 | 
			
		||||
		 */
 | 
			
		||||
		MemSet(&nulls[1], true, sizeof(bool) * (tupdesc->natts - 1));
 | 
			
		||||
 | 
			
		||||
@ -56,6 +56,7 @@
 | 
			
		||||
#include "access/xlog_internal.h"
 | 
			
		||||
#include "access/xlogutils.h"
 | 
			
		||||
 | 
			
		||||
#include "catalog/pg_authid.h"
 | 
			
		||||
#include "catalog/pg_type.h"
 | 
			
		||||
#include "commands/dbcommands.h"
 | 
			
		||||
#include "commands/defrem.h"
 | 
			
		||||
@ -3242,11 +3243,12 @@ pg_stat_get_wal_senders(PG_FUNCTION_ARGS)
 | 
			
		||||
		memset(nulls, 0, sizeof(nulls));
 | 
			
		||||
		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
 | 
			
		||||
			 * value to know it's a walsender, but no details.
 | 
			
		||||
			 * Only superusers and members of pg_read_all_stats can see 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);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user