Re: grant select on all tables

From: Andrew Borley <BORLEY(at)uk(dot)ibm(dot)com>
To: pgsql-novice(at)postgresql(dot)org
Subject: Re: grant select on all tables
Date: 2005-10-04 15:00:38
Message-ID: OF28215D54.4995850C-ON80257090.00523102-80257090.00527425@uk.ibm.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

pgsql-novice-owner(at)postgresql(dot)org wrote on 04/10/2005 13:25:44:

> On 10/4/05 6:56 AM, "Andrew Borley" <BORLEY(at)uk(dot)ibm(dot)com> wrote:
>
> > Hi,
> >
> > I need to have default privileges like "GRANT SELECT ON
> > ALL TABLES" for a particular user. Looking at the docs &
> > mailing list archives there's no easy way to do this. I
> > seem to have to run a grant statement every time a new
> > table is created, so I thought of running the grant
> > automatically as a trigger on the pg_tables table.
> >
> > I got as far as creating a function to help me do the
> > grant part:
> >
> > create or replace function grantAccess(text, text)
> > returns text as '
> > DECLARE grantStmt text;
> > BEGIN
> > grantStmt := \'grant select on \'||$1||\' to \'||$2;
> > EXECUTE grantStmt;
> > RETURN grantStmt;
> > END;'
> > language plpgsql returns null on null input;
> >
> > I wanted to run the function in a trigger on the
> > pg_tables table, but I can't cos it's a view. So I tried
> > setting it on the pg_class table, but I can't do this as
> > it's a system catalog.
> >
> > Can anyone help?
> > Can anyone see a better/easier way of doing it?
>
> Try looking at:
>
> http://pgedit.com/node/20
>
> for some ideas.
>
> Sean
>

Thanks for the link, Sean. There are some useful-looking functions
but I'm still unsure as to how I would get any of them to
automatically run.

Can you set triggers on system catalog tables?
Are there any alternative ways of doing this?

Cheers

Andrew

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message solarsail 2005-10-04 19:18:13 Query with Dynamic tables
Previous Message Sean Davis 2005-10-04 12:25:44 Re: grant select on all tables