mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-22 22:56:29 +00:00
Added check for pg_checkpoint role presence (#807)
* Added check for pg_checkpoint role presence This commit provides the needed infrastructure in `repmgr` so if the `repmgr` database user is a member of the `pg_checkpoint` role, and inherits its privileges, there is no need for such a user to be a superuser. Co-authored-by: Martín Marqués <martin.marques@enterprisedb.com>
This commit is contained in:
@@ -2365,18 +2365,25 @@ do_node_service(void)
|
||||
conn = establish_db_connection_by_params(&source_conninfo, true);
|
||||
}
|
||||
|
||||
if (is_superuser_connection(conn, NULL) == false)
|
||||
if (can_execute_checkpoint(conn) == false)
|
||||
{
|
||||
if (runtime_options.dry_run == true)
|
||||
{
|
||||
log_warning(_("a CHECKPOINT would be issued here but no superuser connection is available"));
|
||||
log_warning(_("a CHECKPOINT would be issued here but no authorized connection is available"));
|
||||
}
|
||||
else
|
||||
{
|
||||
log_warning(_("a superuser connection is required to issue a CHECKPOINT"));
|
||||
log_warning(_("an authorized connection is required to issue a CHECKPOINT"));
|
||||
}
|
||||
|
||||
log_hint(_("provide a superuser with -S/--superuser"));
|
||||
if (PQserverVersion(conn) >= 150000)
|
||||
{
|
||||
log_hint(_("provide a superuser with -S/--superuser or grant pg_checkpoint role to repmgr user"));
|
||||
}
|
||||
else
|
||||
{
|
||||
log_hint(_("provide a superuser with -S/--superuser"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user