Olá, 2009/12/2 Jean Carlos Danese <[email protected]>
> A funcção do link: > http://www.mail-archive.com/[email protected]/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; > > Você sabe o que está acontecendo aqui neste ponto? Você está passando como nome do esquema o nome do usuário atual. É isso mesmo que você quer? > > 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 > > Não entendi este teste aqui. Para que ele serve? > 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 <[email protected]> > > Olá, >> >> >> >> 2009/12/2 Jean Carlos Danese <[email protected]> >> >> >>> http://www.mail-archive.com/[email protected]/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 <[email protected]> >>> >>> Olá, Jean >>>> >>>> 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: >>>>> >>>> >>>> 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 >>>>> [email protected] >>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>>>> >>>>> >>>> >>>> []s >>>> -- >>>> JotaComm >>>> http://jotacomm.wordpress.com >>>> >>>> _______________________________________________ >>>> pgbr-geral mailing list >>>> [email protected] >>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>>> >>>> >>> >>> _______________________________________________ >>> pgbr-geral mailing list >>> [email protected] >>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>> >>> >> >> []s >> -- >> JotaComm >> http://jotacomm.wordpress.com >> >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > []s -- JotaComm http://jotacomm.wordpress.com
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
