Skip to content

Commit 153012c

Browse files
committed
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
1 parent 66c2cc2 commit 153012c

File tree

1 file changed

+50
-14
lines changed

1 file changed

+50
-14
lines changed

src/backend/catalog/aclchk.c

Lines changed: 50 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.163 2010/02/26 02:00:35 momjian Exp $
11+
* $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.164 2010/03/06 23:10:42 tgl Exp $
1212
*
1313
* NOTES
1414
* See acl.h.
@@ -304,24 +304,60 @@ restrict_and_check_grant(bool is_grant, AclMode avail_goptions, bool all_privs,
304304
if (is_grant)
305305
{
306306
if (this_privileges == 0)
307-
ereport(WARNING,
308-
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
309-
errmsg("no privileges were granted for \"%s\"", objname)));
307+
{
308+
if (objkind == ACL_KIND_COLUMN && colname)
309+
ereport(WARNING,
310+
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
311+
errmsg("no privileges were granted for column \"%s\" of relation \"%s\"",
312+
colname, objname)));
313+
else
314+
ereport(WARNING,
315+
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
316+
errmsg("no privileges were granted for \"%s\"",
317+
objname)));
318+
}
310319
else if (!all_privs && this_privileges != privileges)
311-
ereport(WARNING,
312-
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
313-
errmsg("not all privileges were granted for \"%s\"", objname)));
320+
{
321+
if (objkind == ACL_KIND_COLUMN && colname)
322+
ereport(WARNING,
323+
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
324+
errmsg("not all privileges were granted for column \"%s\" of relation \"%s\"",
325+
colname, objname)));
326+
else
327+
ereport(WARNING,
328+
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED),
329+
errmsg("not all privileges were granted for \"%s\"",
330+
objname)));
331+
}
314332
}
315333
else
316334
{
317335
if (this_privileges == 0)
318-
ereport(WARNING,
319-
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
320-
errmsg("no privileges could be revoked for \"%s\"", objname)));
336+
{
337+
if (objkind == ACL_KIND_COLUMN && colname)
338+
ereport(WARNING,
339+
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
340+
errmsg("no privileges could be revoked for column \"%s\" of relation \"%s\"",
341+
colname, objname)));
342+
else
343+
ereport(WARNING,
344+
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
345+
errmsg("no privileges could be revoked for \"%s\"",
346+
objname)));
347+
}
321348
else if (!all_privs && this_privileges != privileges)
322-
ereport(WARNING,
323-
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
324-
errmsg("not all privileges could be revoked for \"%s\"", objname)));
349+
{
350+
if (objkind == ACL_KIND_COLUMN && colname)
351+
ereport(WARNING,
352+
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
353+
errmsg("not all privileges could be revoked for column \"%s\" of relation \"%s\"",
354+
colname, objname)));
355+
else
356+
ereport(WARNING,
357+
(errcode(ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED),
358+
errmsg("not all privileges could be revoked for \"%s\"",
359+
objname)));
360+
}
325361
}
326362

327363
return this_privileges;
@@ -3046,7 +3082,7 @@ aclcheck_error_col(AclResult aclerr, AclObjectKind objectkind,
30463082
case ACLCHECK_NO_PRIV:
30473083
ereport(ERROR,
30483084
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
3049-
errmsg("permission denied for column %s of relation %s",
3085+
errmsg("permission denied for column \"%s\" of relation \"%s\"",
30503086
colname, objectname)));
30513087
break;
30523088
case ACLCHECK_NOT_OWNER:

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy