From aa8faf5f8d98aa9ffabdb800d46bd52bdfc510ba Mon Sep 17 00:00:00 2001 From: luozihao <1165977584@qq.com> Date: Thu, 31 Dec 2020 13:40:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BB=9F=E4=B8=80superuser?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E7=9A=84=E6=AE=8B=E7=95=99bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/utils/misc/guc.cpp | 10 +++++----- .../regress/output/unify_superuser_definition.source | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/common/backend/utils/misc/guc.cpp b/src/common/backend/utils/misc/guc.cpp index 6686aad04..248478aea 100644 --- a/src/common/backend/utils/misc/guc.cpp +++ b/src/common/backend/utils/misc/guc.cpp @@ -12881,9 +12881,9 @@ const char* GetConfigOption(const char* name, bool missing_ok, bool restrict_sup ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("unrecognized configuration parameter \"%s\"", name))); } - if (restrict_superuser && (record->flags & GUC_SUPERUSER_ONLY) && (GetUserId() != BOOTSTRAP_SUPERUSERID)) + if (restrict_superuser && (record->flags & GUC_SUPERUSER_ONLY) && !superuser()) ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be initial account to examine \"%s\"", name))); + (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to examine \"%s\"", name))); switch (record->vartype) { case PGC_BOOL: @@ -12935,9 +12935,9 @@ const char* GetConfigOptionResetString(const char* name) if (record == NULL) ereport( ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("unrecognized configuration parameter \"%s\"", name))); - if ((record->flags & GUC_SUPERUSER_ONLY) && (GetUserId() != BOOTSTRAP_SUPERUSERID)) + if ((record->flags & GUC_SUPERUSER_ONLY) && !superuser()) ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be initial account to examine \"%s\"", name))); + (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to examine \"%s\"", name))); switch (record->vartype) { case PGC_BOOL: @@ -14115,7 +14115,7 @@ static void ShowGUCConfigOption(const char* name, DestReceiver* dest) */ static void ShowAllGUCConfig(DestReceiver* dest) { - bool am_superuser = (GetUserId() == BOOTSTRAP_SUPERUSERID); + bool am_superuser = superuser(); int i; TupOutputState* tstate = NULL; TupleDesc tupdesc; diff --git a/src/test/regress/output/unify_superuser_definition.source b/src/test/regress/output/unify_superuser_definition.source index d22f954c5..4ba379321 100644 --- a/src/test/regress/output/unify_superuser_definition.source +++ b/src/test/regress/output/unify_superuser_definition.source @@ -19,11 +19,11 @@ ALTER SYSTEM SET \! @gsqldir@/gsql -d postgres -p 25632 -U grant_all -W openGauss@123 -c "alter system set password_reuse_max=0;" ALTER SYSTEM SET \! @gsqldir@/gsql -d postgres -p 25632 -U standard_user -W openGauss@123 -c "show password_reuse_max;"; -ERROR: must be initial account to examine "password_reuse_max" +ERROR: must be superuser to examine "password_reuse_max" \! @gsqldir@/gsql -d postgres -p 25632 -U standard_user -W openGauss@123 -c "alter system set password_reuse_max=1;"; ERROR: must be superuser to execute ALTER SYSTEM SET command \! @gsqldir@/gsql -d postgres -p 25632 -U standard_user -W openGauss@123 -c "show password_reuse_max;"; -ERROR: must be initial account to examine "password_reuse_max" +ERROR: must be superuser to examine "password_reuse_max" \! @gsqldir@/gsql -d postgres -p 25632 -U standard_user -W openGauss@123 -c "alter system set password_reuse_max=0;" ERROR: must be superuser to execute ALTER SYSTEM SET command show password_reuse_max; @@ -58,11 +58,11 @@ SET \! @gsqldir@/gsql -d postgres -p 25632 -U grant_all -W openGauss@123 -c "set pljava_vmoptions='';" SET \! @gsqldir@/gsql -d postgres -p 25632 -U standard_user -W openGauss@123 -c "show pljava_vmoptions;"; -ERROR: must be initial account to examine "pljava_vmoptions" +ERROR: must be superuser to examine "pljava_vmoptions" \! @gsqldir@/gsql -d postgres -p 25632 -U standard_user -W openGauss@123 -c "set pljava_vmoptions='aaa';"; ERROR: permission denied to set parameter "pljava_vmoptions" \! @gsqldir@/gsql -d postgres -p 25632 -U standard_user -W openGauss@123 -c "show pljava_vmoptions;"; -ERROR: must be initial account to examine "pljava_vmoptions" +ERROR: must be superuser to examine "pljava_vmoptions" \! @gsqldir@/gsql -d postgres -p 25632 -U standard_user -W openGauss@123 -c "set pljava_vmoptions='';" ERROR: permission denied to set parameter "pljava_vmoptions" show pljava_vmoptions;