Thread: Fwd: Bug with groups and access permissions (7.0.0RC1): more information
Fwd: Bug with groups and access permissions (7.0.0RC1): more information
From
Guillaume Perréal
Date:
Well, I have more information about theses bugs: > It seems there is a 'referential integrity' bug with groups and permissions: > > db=> CREATE USER user1; > CREATE USER > db=> CREATE GROUP group1 WITH SYSID 4 USER user1; > CREATE GROUP > db=> CREATE TABLE table1 (field1 integer PRIMARY KEY); > CREATE > db=> REVOKE ALL ON table1 FROM PUBLIC; > CHANGE > db=> GRANT ALL ON table1 TO GROUP group1; > CHANGE > db=> DROP GROUP group1; > DROP GROUP > \z > NOTICE: get_groname: group 4 not found > The connection to the server was lost. Attempting reset: Failed. > !=> It seems that dropping the group don't delete it from the tables permissions (acl). Then, when Postgresql try to display them, it can't find the name of the dropped group. > db=> DROP USER userx; > ERROR: group groupy does not exist. > db=> SELECT * from PG_GROUP; > ... > groupy | 5 | {1,4} > ... > db=> DROP GROUP groupy; > DROP > Apparently, this tied with databases: - Create a group 'foo' in the database 'foodb': \c foodb postgres CREATE GROUP foo; - Add the user 'userfoo' in this group: ALTER GROUP foo ADD USER 'userfoo;' - Reconnect to database 'bardb': \c bardb - Trying to drop the user 'userfoo' leads to "group foo does not exist": DROP USER userfoo; But either dropping 'userfoo' from 'foodb' or dropping group 'foo' from 'bardb' works! Guillaume Perréal - Stagiaire MIAG Cemagref (URH), Lyon, France Tél: (+33) 4.72.20.87.64
This stuff all seems to be fixed in current sources. There may be a post-release patch or two involved, but the bulk of the fixes are in 7.0 final. regards, tom lane