A funcção do link: http://www.mail-archive.com/pgbr-geral@listas.postgresql.org.br/msg17154.html
CREATE OR REPLACE FUNCTION change_owner(oldOWNER TEXT, newOWNER TEXT) RETURNS boolean AS $$ DECLARE comando TEXT; lista RECORD; BEGIN comando := 'ALTER SCHEMA ' || quote_ident(oldOWNER) || ' OWNER TO ' || quote_ident(newOWNER); EXECUTE comando; FOR lista IN SELECT pg_namespace.nspname, pg_class.relname, pg_class.relkind FROM pg_namespace JOIN pg_class ON pg_namespace.oid=pg_class.relnamespace WHERE pg_namespace.nspname=oldOWNER AND pg_class.relkind IN ('r','v','S') LOOP IF lista.relkind = 'S' AND CAST((SELECT COALESCE(setting,0) FROM pg_settings WHERE name = 'server_version_num') AS INTEGER) >= 80400 THEN comando := 'ALTER SEQUENCE ' || quote_ident(lista.nspname) || '.' || quote_ident(lista.relname) || ' OWNER TO ' || quote_ident(newOWNER); RAISE NOTICE '%', comando; ELSE comando := 'ALTER TABLE ' || quote_ident(lista.nspname) || '.' || quote_ident(lista.relname) || ' OWNER TO ' || quote_ident(newOWNER); RAISE NOTICE '%', comando; END IF; EXECUTE comando; END LOOP; IF FOUND THEN RETURN TRUE; END IF; RETURN FALSE; END; $$ LANGUAGE 'plpgsql' IMMUTABLE RETURNS FALSE ON NULL INPUT; 2009/12/2 JotaComm <jota.c...@gmail.com> > Olá, > > > > 2009/12/2 Jean Carlos Danese <j...@cetesc.com.br> > > >> http://www.mail-archive.com/pgbr-geral@listas.postgresql.org.br/msg17154.html >> >> A função foi executada e não retornou nenhum erro, porem não mudou o dono >> das tabelas, talvez seja algo que fiz de errado ou deixei de fazer. >> > > Primeiro. Qual a função que você executou? Você pode postar aqui o código > da função, sem isso fica dificil pois existem várias maneiras de fazer. Uma > das causas pode ser que as tabelas estejam num esquema diferente do qual > você especificou ou derrepente o usuário que você especificou não existe. O > ideal é você postar aqui o código da função que você executou. Sem estas > informações é dificil ajudar. > >> >> Poderia descrever o procedimento para a execução da função? >> >> 2009/12/1 JotaComm <jota.c...@gmail.com> >> >> Olá, Jean >>> >>> 2009/12/1 Jean Carlos Danese <j...@cetesc.com.br> >>> >>> 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: >>>> >>> >>> Como assim as coisas não deram muito certo na hora de executar? Poderia >>> dar um exemplo do que deu errado? >>> >>>> >>>> -- 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'); >>>> >>> >>> Acredito essa não ser a solução mais adequada, principalmente por fazer >>> uma alteração do catálogo e neste momento todo o cuidado é pouco. >>> >>>> >>>> Essa solução me pareceu mais simples. >>>> _______________________________________________ >>>> pgbr-geral mailing list >>>> pgbr-geral@listas.postgresql.org.br >>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>>> >>>> >>> >>> []s >>> -- >>> JotaComm >>> http://jotacomm.wordpress.com >>> >>> _______________________________________________ >>> pgbr-geral mailing list >>> pgbr-geral@listas.postgresql.org.br >>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>> >>> >> >> _______________________________________________ >> pgbr-geral mailing list >> pgbr-geral@listas.postgresql.org.br >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> > > []s > -- > JotaComm > http://jotacomm.wordpress.com > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral