Which means everytime I create a new table or a new schema, I have to run the script again, right?
Thanks.
Oliver Elphick <olly@xxxxxxxxxx>
08/17/2005 09:08 AM
|
To: Zuoxin Wang/CA/KAIPERM@Kaiperm cc: agold@xxxxxxxxxxxx, pgsql-admin@xxxxxxxxxxxxxx Subject: Re: [ADMIN] GRANT ALL PRIVILEGES ON DATABASE |
On Wed, 2005-08-17 at 08:14 -0700, Zuoxin.Wang@xxxxxx wrote:
>
> Could you tell us what is the best way to grant a user who can select
> all data from all tables, if I don't like to write a script which
> Andrew memtioned earlier.
Here's a quick way to generate a script and then run it, all from within
a psql session. This grants all privileges on all visible tables to a
user called that_user. It works by generating the commands and writing
them to a file, then executing that file as an SQL script:
$ psql -d my_database
\a
\t
\o /tmp/grant_privileges
select 'GRANT ALL PRIVILEGES ON ' || c.relname || ' TO that_user;' from
pg_catalog.pg_class AS c LEFT JOIN pg_catalog.pg_namespace AS n ON n.oid
= c.relnamespace where relkind = 'r' AND n.nspname NOT IN ('pg_catalog',
'pg_toast') AND pg_catalog.pg_table_is_visible(c.oid);
\o
\i /tmp/grant_privileges
--
Oliver Elphick olly@xxxxxxxxxx
Isle of Wight http://www.lfix.co.uk/oliver
GPG: 1024D/A54310EA 92C8 39E7 280E 3631 3F0E 1EC0 5664 7A2F A543 10EA
========================================
Do you want to know God? http://www.lfix.co.uk/knowing_god.html