aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execMain.c
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1997-03-12 20:48:48 +0000
committerMarc G. Fournier <scrappy@hub.org>1997-03-12 20:48:48 +0000
commite4949f9fe55223dac74b0075b5483ad15e8e318c (patch)
tree0eebc8861f09df6d575a5834278176c04fe8ce16 /src/backend/executor/execMain.c
parentc00c511b7bb85e8c3fa2424a25cb9cea3d5f4b33 (diff)
downloadpostgresql-e4949f9fe55223dac74b0075b5483ad15e8e318c.tar.gz
postgresql-e4949f9fe55223dac74b0075b5483ad15e8e318c.zip
From: Dan McGuirk <mcguirk@indirect.com>
Subject: [HACKERS] better access control error messages This patch replaces the 'no such class or insufficient privilege' with distinct error messages that tell you whether the table really doesn't exist or whether access was denied.
Diffstat (limited to 'src/backend/executor/execMain.c')
-rw-r--r--src/backend/executor/execMain.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 11c8f91a8d4..cff5081c374 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -26,7 +26,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.10 1997/01/22 05:26:27 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.11 1997/03/12 20:47:41 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@@ -289,7 +289,7 @@ ExecCheckPerms(CmdType operation,
HeapTuple htp;
List *lp;
List *qvars, *tvars;
- int32 ok = 1;
+ int32 ok = 1, aclcheck_result = -1;
char *opstr;
NameData rname;
char *userName;
@@ -317,21 +317,21 @@ ExecCheckPerms(CmdType operation,
if (intMember(resultRelation, qvars) ||
intMember(resultRelation, tvars)) {
/* result relation is scanned */
- ok = CHECK(ACL_RD);
+ ok = ((aclcheck_result = CHECK(ACL_RD)) == ACLCHECK_OK);
opstr = "read";
if (!ok)
break;
}
switch (operation) {
case CMD_INSERT:
- ok = CHECK(ACL_AP) ||
- CHECK(ACL_WR);
+ ok = ((aclcheck_result = CHECK(ACL_AP)) == ACLCHECK_OK) ||
+ ((aclcheck_result = CHECK(ACL_WR)) == ACLCHECK_OK);
opstr = "append";
break;
case CMD_NOTIFY: /* what does this mean?? -- jw, 1/6/94 */
case CMD_DELETE:
case CMD_UPDATE:
- ok = CHECK(ACL_WR);
+ ok = ((aclcheck_result = CHECK(ACL_WR)) == ACLCHECK_OK);
opstr = "write";
break;
default:
@@ -340,7 +340,7 @@ ExecCheckPerms(CmdType operation,
}
} else {
/* XXX NOTIFY?? */
- ok = CHECK(ACL_RD);
+ ok = ((aclcheck_result = CHECK(ACL_RD)) == ACLCHECK_OK);
opstr = "read";
}
if (!ok)
@@ -352,7 +352,7 @@ ExecCheckPerms(CmdType operation,
elog(WARN, "%s on \"%-.*s\": permission denied", opstr,
NAMEDATALEN, rname.data);
*/
- elog(WARN, "%s %s", rname.data, ACL_NO_PRIV_WARNING);
+ elog(WARN, "%s: %s", rname.data, aclcheck_error_strings[aclcheck_result]);
}
}