Thread: partially effective revoke on pg_catalog
user depesz is superuser. i connect to depesz database, and: (depesz@[local]:5830) 14:20:34 [depesz] # revoke usage on schema pg_catalog from public; REVOKE now, i reconnect to the same database with test user (which is not superuser): (test@[local]:5830) 14:23:55 [depesz] > \d ERROR: permission denied for schema pg_catalog (test@[local]:5830) 14:23:57 [depesz] > select count(*) from pg_tables; count ------- 48 (1 row) (test@[local]:5830) 14:23:59 [depesz] > select count(*) from pg_catalog.pg_tables; ERROR: permission denied for schema pg_catalog something looks weird here. search_path is default: (test@[local]:5830) 14:24:03 [depesz] > show search_path; search_path ---------------- "$user",public (1 row) pg version - 8.3devel from cvs. depesz -- quicksil1er: "postgres is excellent, but like any DB it requires a highly paid DBA. here's my CV!" :) http://www.depesz.com/ - blog dla ciebie (i moje CV)
hubert depesz lubaczewski <depesz@depesz.com> writes: > # revoke usage on schema pg_catalog from public; > REVOKE This is not a supported operation. regards, tom lane
On Mon, Sep 10, 2007 at 10:38:34AM -0400, Tom Lane wrote: > hubert depesz lubaczewski <depesz@depesz.com> writes: > > # revoke usage on schema pg_catalog from public; > > REVOKE > This is not a supported operation. ok, but i belive it should either dont allow admin to do so, or, if it does allow, it should behave more consistently. depesz -- quicksil1er: "postgres is excellent, but like any DB it requires a highly paid DBA. here's my CV!" :) http://www.depesz.com/ - blog dla ciebie (i moje CV)
hubert depesz lubaczewski <depesz@depesz.com> writes: > On Mon, Sep 10, 2007 at 10:38:34AM -0400, Tom Lane wrote: >> hubert depesz lubaczewski <depesz@depesz.com> writes: >>> # revoke usage on schema pg_catalog from public; >>> REVOKE >> This is not a supported operation. > ok, but i belive it should either dont allow admin to do so, or, if it > does allow, it should behave more consistently. There are few "training wheels" for superuser mode. Try something like "delete from pg_proc" if you are looking for ways to break your database. regards, tom lane
On Mon, Sep 10, 2007 at 11:17:21AM -0400, Tom Lane wrote: > > ok, but i belive it should either dont allow admin to do so, or, if it > > does allow, it should behave more consistently. > There are few "training wheels" for superuser mode. Try something like > "delete from pg_proc" if you are looking for ways to break your > database. i'm perfectly fine with "revoke from pg_catalog" not working/not allowed, but dont you think that the outcome should be a bit more consistent? if it would "break the database" - i'm happy with it. if it will reject hhe command as "it is not possible" - i'm happy with it. but now postgresql raports to user that revoke worked. and at first sight it actually does seem like it. but a second check showes that the revoke is not really 100% effective. again - i'm in no position to ask to give the ability to revoke the privileges. all i'm asking is to put some consistency - either break it, or forbid. but dont say "revoked" when it's not really true. depesz -- quicksil1er: "postgres is excellent, but like any DB it requires a highly paid DBA. here's my CV!" :) http://www.depesz.com/ - blog dla ciebie (i moje CV)