Thread: User Privileges
All, How can you grant privileges to a user to all tables in database? For example I have 5 tables in database A. And now I want to give SELECT/UPDATE/INSERT privileges to a user to all 5 tables. But according to documentation, I have to execute 'GRANT' query 3 times(for select/update/insert) per table. meaning total of 15 times!!!! Is there any way I can do that in just one shot? Basically I want to give user privileges to all tables in databse at once. Like we can do in MySQL by adding a user in 'db' and 'user' table. Is it possible in PostgreSQL? How? Thanks in advance.. Niral
> For example I have 5 tables in database A. And now I want to give > SELECT/UPDATE/INSERT privileges to a user to all 5 tables. But according to > documentation, I have to execute 'GRANT' query 3 times(for > select/update/insert) per table. meaning total of 15 times!!!! That's incorrect... you can do it all in one statement: GRANT select,update,insert TO "<username>" ON table_1,table_2,table_3,etc http://www.postgresql.org/users-lounge/docs/7.0/user/sql-grant.htm -Dan
Thank you.. Niral -----Original Message----- From: Dan Wilson [mailto:phpPgAdmin@acucore.com] Sent: Tuesday, December 26, 2000 1:25 PM To: Niral Trivedi; pgsql-general@postgresql.org Subject: Re: [GENERAL] User Privileges > For example I have 5 tables in database A. And now I want to give > SELECT/UPDATE/INSERT privileges to a user to all 5 tables. But according to > documentation, I have to execute 'GRANT' query 3 times(for > select/update/insert) per table. meaning total of 15 times!!!! That's incorrect... you can do it all in one statement: GRANT select,update,insert TO "<username>" ON table_1,table_2,table_3,etc http://www.postgresql.org/users-lounge/docs/7.0/user/sql-grant.htm -Dan
How do I retrieve this privilages? I want to disable menu-options within a program. For that I have to retrieve the privilages for some tables. gr, Willem ----- Original Message ----- From: "Dan Wilson" <phpPgAdmin@acucore.com> To: "Niral Trivedi" <niral.trivedi@insage.com>; <pgsql-general@postgresql.org> Sent: Tuesday, December 26, 2000 7:25 PM Subject: Re: [GENERAL] User Privileges > > For example I have 5 tables in database A. And now I want to give > > SELECT/UPDATE/INSERT privileges to a user to all 5 tables. But according > to > > documentation, I have to execute 'GRANT' query 3 times(for > > select/update/insert) per table. meaning total of 15 times!!!! > > That's incorrect... you can do it all in one statement: > > GRANT select,update,insert TO "<username>" ON table_1,table_2,table_3,etc > > http://www.postgresql.org/users-lounge/docs/7.0/user/sql-grant.htm > > -Dan > > >
SELECT relacl FROM pg_class WHERE relname = '[table name]' The relacl column contains specific information that must then be parsed to determine the users which have access to a the table and the privileges granted. Example: {"=","dan=arw","group developers=arw"} The first section means the PUBLIC does not have any privileges on the table. Each permission (SELECT, INSERT, UPDATE/DELETE, RULE) is signified by a letter. r = select, a = insert, w = update/delete, R = rule. User "dan" has SELECT, INSERT, UPDATE/DELETE rights, but not RULE rights. Group "developers" has the same privileges. For more details -- http://www.postgresql.org/users-lounge/docs/7.0/user/sql-grant.htm -Dan ----- Original Message ----- From: "W. van den Akker" <wvdakker@wilsoft.nl> To: <pgsql-general@postgresql.org> Sent: Tuesday, December 26, 2000 11:57 PM Subject: Re: [GENERAL] User Privileges > How do I retrieve this privilages? > I want to disable menu-options within a program. For that I have to > retrieve the privilages for some tables. > > gr, > > Willem > > ----- Original Message ----- > From: "Dan Wilson" <phpPgAdmin@acucore.com> > To: "Niral Trivedi" <niral.trivedi@insage.com>; > <pgsql-general@postgresql.org> > Sent: Tuesday, December 26, 2000 7:25 PM > Subject: Re: [GENERAL] User Privileges > > > > > For example I have 5 tables in database A. And now I want to give > > > SELECT/UPDATE/INSERT privileges to a user to all 5 tables. But according > > to > > > documentation, I have to execute 'GRANT' query 3 times(for > > > select/update/insert) per table. meaning total of 15 times!!!! > > > > That's incorrect... you can do it all in one statement: > > > > GRANT select,update,insert TO "<username>" ON table_1,table_2,table_3,etc > > > > http://www.postgresql.org/users-lounge/docs/7.0/user/sql-grant.htm > > > > -Dan > > > > > > >
Hello, the information can be found in the system-table-column PG_CLASS.RELACL: SELECT RELACL FROM PG_CLASS WHERE RELNAME = 't_dummy'; The result seems to be an array of granted permissions, so you should treat it is an array and look for the appropriate user- or group-name. Hope this helps ... Regards, Jens "W. van den Akker" schrieb: > > How do I retrieve this privilages? > I want to disable menu-options within a program. For that I have to > retrieve the privilages for some tables. > > gr, > > Willem > > ----- Original Message ----- > From: "Dan Wilson" <phpPgAdmin@acucore.com> > To: "Niral Trivedi" <niral.trivedi@insage.com>; > <pgsql-general@postgresql.org> > Sent: Tuesday, December 26, 2000 7:25 PM > Subject: Re: [GENERAL] User Privileges > > > > For example I have 5 tables in database A. And now I want to give > > > SELECT/UPDATE/INSERT privileges to a user to all 5 tables. But according > > to > > > documentation, I have to execute 'GRANT' query 3 times(for > > > select/update/insert) per table. meaning total of 15 times!!!! > > > > That's incorrect... you can do it all in one statement: > > > > GRANT select,update,insert TO "<username>" ON table_1,table_2,table_3,etc > > > > http://www.postgresql.org/users-lounge/docs/7.0/user/sql-grant.htm > > > > -Dan > > > > > > ============================================= Jens Hartwig --------------------------------------------- debis Systemhaus GEI mbH 10875 Berlin Tel. : +49 (0)30 2554-3282 Fax : +49 (0)30 2554-3187 Mobil : +49 (0)170 167-2648 E-Mail : jhartwig@debis.com =============================================