Fix warning messages in restrict_and_check_grant() to include the column name
when warning about column-level privileges. This is more useful than before and makes the apparent duplication complained of by Piyush Newe not so duplicate. Also fix lack of quote marks in a related message text. Back-patch to 8.4, where column-level privileges were introduced. Stephen Frost
This commit is contained in:
parent
d192b38607
commit
f2c458ed01
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.154 2009/06/11 14:48:54 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.154.2.1 2010/03/06 23:10:50 tgl Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* See acl.h.
|
* See acl.h.
|
||||||
@ -247,24 +247,60 @@ restrict_and_check_grant(bool is_grant, AclMode avail_goptions, bool all_privs,
|
|||||||
if (is_grant)
|
if (is_grant)
|
||||||
{
|
{
|
||||||
if (this_privileges == 0)
|
if (this_privileges == 0)
|
||||||
ereport(WARNING,
|
{
|
||||||
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
|
if (objkind == ACL_KIND_COLUMN && colname)
|
||||||
errmsg("no privileges were granted for \"%s\"", objname)));
|
ereport(WARNING,
|
||||||
|
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
|
||||||
|
errmsg("no privileges were granted for column \"%s\" of relation \"%s\"",
|
||||||
|
colname, objname)));
|
||||||
|
else
|
||||||
|
ereport(WARNING,
|
||||||
|
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
|
||||||
|
errmsg("no privileges were granted for \"%s\"",
|
||||||
|
objname)));
|
||||||
|
}
|
||||||
else if (!all_privs && this_privileges != privileges)
|
else if (!all_privs && this_privileges != privileges)
|
||||||
ereport(WARNING,
|
{
|
||||||
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
|
if (objkind == ACL_KIND_COLUMN && colname)
|
||||||
errmsg("not all privileges were granted for \"%s\"", objname)));
|
ereport(WARNING,
|
||||||
|
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
|
||||||
|
errmsg("not all privileges were granted for column \"%s\" of relation \"%s\"",
|
||||||
|
colname, objname)));
|
||||||
|
else
|
||||||
|
ereport(WARNING,
|
||||||
|
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
|
||||||
|
errmsg("not all privileges were granted for \"%s\"",
|
||||||
|
objname)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (this_privileges == 0)
|
if (this_privileges == 0)
|
||||||
ereport(WARNING,
|
{
|
||||||
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
|
if (objkind == ACL_KIND_COLUMN && colname)
|
||||||
errmsg("no privileges could be revoked for \"%s\"", objname)));
|
ereport(WARNING,
|
||||||
|
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
|
||||||
|
errmsg("no privileges could be revoked for column \"%s\" of relation \"%s\"",
|
||||||
|
colname, objname)));
|
||||||
|
else
|
||||||
|
ereport(WARNING,
|
||||||
|
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
|
||||||
|
errmsg("no privileges could be revoked for \"%s\"",
|
||||||
|
objname)));
|
||||||
|
}
|
||||||
else if (!all_privs && this_privileges != privileges)
|
else if (!all_privs && this_privileges != privileges)
|
||||||
ereport(WARNING,
|
{
|
||||||
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
|
if (objkind == ACL_KIND_COLUMN && colname)
|
||||||
errmsg("not all privileges could be revoked for \"%s\"", objname)));
|
ereport(WARNING,
|
||||||
|
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
|
||||||
|
errmsg("not all privileges could be revoked for column \"%s\" of relation \"%s\"",
|
||||||
|
colname, objname)));
|
||||||
|
else
|
||||||
|
ereport(WARNING,
|
||||||
|
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
|
||||||
|
errmsg("not all privileges could be revoked for \"%s\"",
|
||||||
|
objname)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this_privileges;
|
return this_privileges;
|
||||||
@ -2182,7 +2218,7 @@ aclcheck_error_col(AclResult aclerr, AclObjectKind objectkind,
|
|||||||
case ACLCHECK_NO_PRIV:
|
case ACLCHECK_NO_PRIV:
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||||
errmsg("permission denied for column %s of relation %s",
|
errmsg("permission denied for column \"%s\" of relation \"%s\"",
|
||||||
colname, objectname)));
|
colname, objectname)));
|
||||||
break;
|
break;
|
||||||
case ACLCHECK_NOT_OWNER:
|
case ACLCHECK_NOT_OWNER:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user