> Hey All,
>
> We have a need to grant privileges on entire databases to users and/or
> groups. It looks like GRANT just grants on tables and sequences, but I'd
> like to know if there's a more direct way to do it. What I'm doing now
> is getting a list of tables and sequences and calling grant for each one
> in turn. How am I getting this list (I'm user Perl, not psql)? With this
> query:
>
>         SELECT relname
>         FROM   pg_class
>         WHERE  relkind IN ('r', 'S')
>                AND relowner IN (
>                    SELECT usesysid
>                    FROM   pg_user
>                    WHERE  LOWER(usename) = 'myuser')
>
> Anyway, pointers to any shortcuts for this would be greatly appreciated.

First pointer, phpPgAdmin (http://www.greatbridge.org/project/phppgadmin)
has this built into it.  It will automatically get the list of tables,
sequences and views and run a grant statment on them.

Second pointer.  GRANT will take multiple "relations" seperated by commas:

GRANT ALL ON table1, table1, seq1, seq2, view1, view2 TO my_user;

-Dan

Reply via email to