| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | "Oliver Elphick" <olly(at)lfix(dot)co(dot)uk> |
| Cc: | pgsql-bugs(at)postgresql(dot)org, Peter Eisentraut <peter_e(at)gmx(dot)net> |
| Subject: | Re: BUG #1114: REVOKE done by non-privileged user claims success |
| Date: | 2004-03-24 16:14:20 |
| Message-ID: | 18951.1080144860@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
"PostgreSQL Bugs List" <pgsql-bugs(at)postgresql(dot)org> writes:
> When REVOKE is used on an object for which the current user does not have
> GRANT privilege, the operation fails but "REVOKE" is returned as if it had
> succeeded:
Looking at the code, this seems to be intentional, because the privilege
check is not made for revokes only for grants:
if (stmt->is_grant
&& !pg_class_ownercheck(relOid, GetUserId())
&& pg_class_aclcheck(relOid, GetUserId(),
ACL_GRANT_OPTION_FOR(privileges)) != ACLCHECK_OK)
aclcheck_error(ACLCHECK_NO_PRIV, ACL_KIND_CLASS, relvar->relname);
Peter, do you remember why you did it that way?
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2004-03-24 16:33:48 | Re: BUG #1113: Default template databases grant CREATE to PUBLIC |
| Previous Message | Wes Palmer | 2004-03-24 15:58:27 | Solaris - no error handling in ecpg programs |