2009/12/1 Jean Carlos Danese <[email protected]>

> Outro dia vi um questionamento sobre como alterar o dono de todas as
> tabelas do banco de dados vi as solução e achei interessante, mas na hora de
> executar as coisas não derão muito certo, após algumas tentativas resolvi
> tentar outra maneira de resolver, que ficou assim:
>
> -- altera todas as tabelas com dono jean para dono postgres
> UPDATE pg_class SET relowner=(select oid from pg_roles where
> rolname='postgres') WHERE relowner=(select oid from pg_roles where
> rolname='jean');
>
> Essa solução me pareceu mais simples.
>
>
Eu não alteraria o catálogo... ao invés disso poderia, através do catálogo,
gerar os DDL necessários:

select 'ALTER TABLE
'||quote_ident(table_schema)||'.'||quote_ident(table_name)||' OWNER TO
novo_dono;'
  from information_schema.tables
where table_schema not in ('information_schema', 'pg_catalog');


O resultado pode ser aplicado a base de dados... ou se preferir podes criar
uma PL/PgSQL para fazer o trabalho para você e adicionar alguns filtros
(schema, tabela, etc..)

Cordialmente,
-- 
Fabrízio de Royes Mello
>> Blog sobre TI: http://fabriziomello.blogspot.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a