mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +03:00
Allow GRANT on pg_log_backend_memory_contexts().
Remove superuser check, allowing any user granted permissions on pg_log_backend_memory_contexts() to log the memory contexts of any backend. Note that this could allow a privileged non-superuser to log the memory contexts of a superuser backend, but as discussed, that does not seem to be a problem. Reviewed-by: Nathan Bossart, Bharath Rupireddy, Michael Paquier, Kyotaro Horiguchi, Andres Freund Discussion: https://postgr.es/m/e5cf6684d17c8d1ef4904ae248605ccd6da03e72.camel@j-davis.com
This commit is contained in:
@ -162,10 +162,10 @@ pg_get_backend_memory_contexts(PG_FUNCTION_ARGS)
|
||||
* pg_log_backend_memory_contexts
|
||||
* Signal a backend process to log its memory contexts.
|
||||
*
|
||||
* Only superusers are allowed to signal to log the memory contexts
|
||||
* because allowing any users to issue this request at an unbounded
|
||||
* rate would cause lots of log messages and which can lead to
|
||||
* denial of service.
|
||||
* By default, only superusers are allowed to signal to log the memory
|
||||
* contexts because allowing any users to issue this request at an unbounded
|
||||
* rate would cause lots of log messages and which can lead to denial of
|
||||
* service. Additional roles can be permitted with GRANT.
|
||||
*
|
||||
* On receipt of this signal, a backend sets the flag in the signal
|
||||
* handler, which causes the next CHECK_FOR_INTERRUPTS() to log the
|
||||
@ -177,12 +177,6 @@ pg_log_backend_memory_contexts(PG_FUNCTION_ARGS)
|
||||
int pid = PG_GETARG_INT32(0);
|
||||
PGPROC *proc;
|
||||
|
||||
/* Only allow superusers to log memory contexts. */
|
||||
if (!superuser())
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||
errmsg("must be a superuser to log memory contexts")));
|
||||
|
||||
proc = BackendPidGetProc(pid);
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user