Recursive/Wildcard Object Ownership Change

From: "Brian A(dot) Seklecki" <lavalamp(at)spiritual-machines(dot)org>
To: pgsql-general(at)postgresql(dot)org
Subject: Recursive/Wildcard Object Ownership Change
Date: 2007-02-28 21:38:52
Message-ID: 20070228162948.H84901@arbitor.digitalfreaks.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


All:

Ideas for recursively changing the ownership of all objects in a database
to a new user?

- There is no way to specify recursion in "ALTER TABLE OWNER TO rolename"

- Globbing table names in "ALTER TABLE * OWNER TO rolename" does not work.

- To get a list of tables, you can do:

SELECT table_schema,table_name from information_schema.tables where
table_schema !~ '.*(catalog|info rmation_schema).*';

However to get a list of sequences, you have to:

"SELECT relname from pg_class where relkind='S';

And so on and so on a different approach for all other types of objects:
Procedures, Schemas, Database, Tablespaces, Languages, Views, Triggers,
Domains..

Then you have to loop those through a for loop with a different syntax to
ALTER, or (coming to mind just now) a sub-query instead of asterisk in
ALTER [Object].

Another option is to dump the schema and use regex to alter OWNER
statements.

Ideas on more efficient ways to do this?

l8*
-lava (Brian A. Seklecki - Pittsburgh, PA, USA)
http://www.spiritual-machines.org/

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Frank Church 2007-02-28 22:01:02 rpm containing pgdump
Previous Message Bill Moran 2007-02-28 21:24:09 Re: How often do I need to reindex tables?