[pgbr-geral] Restore Banco

2013-06-28 Por tôpico Marcel Farias Costa
Caros,

Meu Windows corrompeu e eu não estou conseguindo fazer a restauração. Tenho
todos meus arquivos guardados em outra unidade, por isso, a unica solução é
mesmo formata-lo. Mas, lembrei que os arquivos de Data do Banco estão no
disco C. Com o CD do Ubuntu(Linux), consegui visualizar a pasta do
Postgres. Mas, não sei qual é o arquivo exato da minha base de dados.
Copiei toda essa pasta do Postgres para uma outra unidade. Com esses
arquivos, eu vou poder fazer o restore de meus bancos em outro banco
Postgres?

Fico No aguardo!
Muito Obrigado a todos!


-- 
Atenciosamente,

*Marcel Felipe Farias da Costa*
(71) 9102-2186

marcelffar...@gmail.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Trigger AFTER

2011-04-14 Por tôpico Marcel Farias Costa
Preciso pegar um valor que esta em uma outra tabela, para conctenar com a
matricula
Ex.: Matricula antiga: 0123456
 Matricula nova:   sal0123456
Esse sal > vem do municipio "SALvador"

Para pegar o nome do Municipio do campus, fiz uma função, que segue abaixo:

CREATE OR REPLACE FUNCTION matricula_aluno(mat_aluno character varying)
  RETURNS character varying AS
$BODY$
DECLARE
municipio character varying(20);
matriculanova character varying(20);
BEGIN
Select into municipio mun."MUN_NOME" From aluno a JOIN curso c
ON a.curs_cod = c.curs_cod
JOIN campus cm
ON c.camp_cod = cm.camp_cod
JOIN municipios mun
ON cm.mun_cod = mun."MUN_COD"
Where alun_matricula = mat_aluno;
select into municipio substring(municipio from 0 for 4);
select into municipio lower(municipio);
matriculanova := municipio||mat_aluno;
return matriculanova;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION matricula_aluno(character varying) OWNER TO postgres;

Essa função, faz todo um select, que chega ate o MUN_NOME, quando o
alun_matricula = parametro passado pela função.
Essa função esta funcionando. Pega as 3 primeiras letras do municipio e
conctena com o número de matricula.

Só que, essa função soh funciona se eu colocar a TRIGGER como AFTER. Mas,
com a trigger em AFTER, a função não consegue inserir no registro.

O que eu posso fazer?

-- 
Atenciosamente,

*Marcel Felipe Farias da Costa*
(71) 9977-0817 / 8749-2031

marcelffar...@gmail.com
[image: 
Facebook]<http://www.facebook.com/home.php?#%21/profile.php?id=11674557938>
[image:
Orkut] <http://www.orkut.com.br/Main#Profile?uid=12437653927557068245> [image:
Twitter] <http://twitter.com/marcelffarias>
[image: Google Talk/] marcelffarias [image: Skype/] marcel.f.costa [image:
MSN/] marcelffar...@hotmail.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] PgDesigner

2011-04-14 Por tôpico Marcel Farias Costa
Caros colegas,

Eu ja tinha instalado o PostgreSQL 9.0.3 instalado da maquina. Essa semana
achei uma ferramenta pra Design de modelo. So que, esse modelo só exportar
para versões anteriores, a minha?

O que vocês acham? teria uma versão nova do PgDesigner?

Abraços!

-- 
Atenciosamente,

*Marcel Felipe Farias da Costa*
(71) 9977-0817 / 8749-2031

marcelffar...@gmail.com
[image: 
Facebook]<http://www.facebook.com/home.php?#%21/profile.php?id=11674557938>
[image:
Orkut] <http://www.orkut.com.br/Main#Profile?uid=12437653927557068245> [image:
Twitter] <http://twitter.com/marcelffarias>
[image: Google Talk/] marcelffarias [image: Skype/] marcel.f.costa [image:
MSN/] marcelffar...@hotmail.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Trigger Log

2011-03-31 Por tôpico Marcel Farias Costa
Galera,

Estou tentando fazer uma trigger de LOG. Quando um usuario da um INSERT,
UPDATE ou DELETE, a trigger verifica se a tabela Nome_tabela+_log existe no
banco. Se nao existe, ele ira criar essa tabela.
se existir, ele vai dar um insert com todas informações OLD.* na tabela de
LOG. Com o comando abaixo.
Esse comando, vai varrer toda tabela e em cada campo da tabela, vai pegar o
seu OLD e jogar na tabela LOG:

* execute 'insert into ' || nome_tabela_log ||'('|| r.coluna ||') values
(OLD.' || r.coluna || ');';*
Exemplo:
* insert into produtos_log(cod_prod) values (OLD.cod_prod);*

So que, quando ele realiza esse comando. esta dando um erro. Segue o erro
abaixo:

*ERRO:  faltando entrada para tabela "old" na cláusula FROM
LINE 1: insert into produtos_log(cod_prod) values (OLD.cod_prod);
   ^
QUERY:  insert into produtos_log(cod_prod) values (OLD.cod_prod);
CONTEXT:  PL/pgSQL function "log_tabela" line 41 at comando EXECUTE

** Error **

ERRO: faltando entrada para tabela "old" na cláusula FROM
SQL state: 42P01
Context: PL/pgSQL function "log_tabela" line 41 at comando EXECUTE

*Agradeço a todos!
*
Segue a Trigger Abaixo:
*
CREATE OR REPLACE FUNCTION log_tabela()
  RETURNS trigger AS
$BODY$
 declare
 r record;
 comando text;
 nome_tabela_log text;
 nome_tabela text;
 --cod_prod integer;

begin

nome_tabela_log := TG_TABLE_NAME || '_log'; -- Atribui o nome da tabela +
Log na variavel nome_tabela_log
nome_tabela := TG_TABLE_NAME; -- Atriui o nome da tabela a variavel
nome_tabela

IF ((select count(relname) from pg_class where relname = nome_tabela_log) =
0) -- Verifica se a tabela nome_tabela_log Existe no Banco de Dados
then  BEGIN -- Se não existe, Ele Cria a tabela e seus campos igual a tabela
Principal, adicionando o campo OPERAÇÃO, DATA, Usuario
RAISE NOTICE 'Criando Tabela de Log... %',nome_tabela_log;
execute 'create table ' || nome_tabela_log || ' as select * from ' ||
nome_tabela;
execute  'alter table ' || nome_tabela_log || ' add column operacao
char';
execute  'alter table ' || nome_tabela_log || ' add column data
timestamp';
execute  'alter table ' || nome_tabela_log || ' add column usuario
varchar';
 END;
ELSE BEGIN -- Se Existir, ele vai adicionar os campos da tabela principal na
Tabela LOG
--RAISE NOTICE '%',nome_tabela_log;
--RAISE NOTICE '%',nome_tabela;
--cod_prod := OLD.cod_prod;
--RAISE NOTICE '%',cod_prod;
for r in
 (SELECT
a.attname AS coluna
  FROM pg_attribute AS a
  JOIN
pg_class AS c ON c.oid=a.attrelid AND c.relname !~ '^pg_'
  JOIN
pg_type AS t ON t.oid=a.atttypid
  LEFT OUTER JOIN
pg_attrdef AS d ON c.oid=d.adrelid
AND d.adnum=a.attnum
WHERE a.attnum>0
AND c.relname = TG_TABLE_NAME
ORDER BY a.attnum)
loop
* execute 'insert into ' || nome_tabela_log ||'('|| r.coluna ||') values
(OLD.' || r.coluna || ');';*
end loop;
 END;
 END IF;

RETURN NEW;

 end;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION log_tabela() OWNER TO postgres;


-- 
Atenciosamente,

*Marcel Felipe Farias da Costa*
(71) 9977-0817 / 8749-2031

marcelffar...@gmail.com
[image: 
Facebook]<http://www.facebook.com/home.php?#%21/profile.php?id=11674557938>
[image:
Orkut] <http://www.orkut.com.br/Main#Profile?uid=12437653927557068245> [image:
Twitter] <http://twitter.com/marcelffarias>
[image: Google Talk/] marcelffarias [image: Skype/] marcel.f.costa [image:
MSN/] marcelffar...@hotmail.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-20 Por tôpico Marcel Araujo
ahahahahaha, tô em estado de graça!

Meu amigo, consegui reduzir uma consulta de faturamento de 67 segundos para
apenas 10 segundos e podendo melhor ainda mais.

-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
http://marcelaraujo.tumblr.com/
http://www.marcelaraujo.com
http://www.marcelaraujo.com.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-20 Por tôpico Marcel Araujo
Aham, muito obrigado pela explicação. Irei testar daqui a pouco e darei
retorno.

-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
http://marcelaraujo.tumblr.com/
http://www.marcelaraujo.com
http://www.marcelaraujo.com.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-19 Por tôpico Marcel Araujo
Não ficou muito claro para mim a reescrita de uma consulta.

Como eu faria numa consulta como esta abaixo???

*CREATE OR REPLACE VIEW vw_ch_professores_turmas_ofertas AS
SELECT tof.id AS turma_oferta_id, tpo.id AS turma_professor_id, pf.id AS
professor_id, pf.cod_prof, ps.id, ps.nome_pessoa, sum(tpo.carga_horaria) AS
carga_horaria, sum(tpo.carga_horaria) * 0.2::double precision AS
horas_preparacao, d.id AS disciplina_id, d.cod_disciplina,
d.nome_disciplina, tof.nr_vagas, tof.cod_turma, tof.periodo_id
  FROM turmas_ofertas tof
  JOIN disciplinas d ON tof.disciplina_id = d.id
  LEFT JOIN turmas_ofertas_professores tpo ON tpo.turma_oferta_id = tof.id
  LEFT JOIN professores pf ON tpo.professor_id = pf.id
  LEFT JOIN pessoas ps ON pf.pessoa_id = ps.id
 GROUP BY tpo.id, tpo.carga_horaria, tof.id, tof.cod_turma, tof.nr_vagas,
tof.periodo_id, d.id, d.cod_disciplina, d.nome_disciplina, pf.id,
pf.cod_prof, ps.id, ps.nome_pessoa;*

-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
http://marcelaraujo.tumblr.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sequence

2010-04-22 Por tôpico Marcel Araujo
Podes criar uma function que zerasse o value da sequence. Podes criar um
script PHP por exemplo e agendar no cron do teu servidor.

-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
http://marcelaraujo.tumblr.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Procedures

2010-02-10 Por tôpico Marcel Araujo
Vou olhar sim, muito obrigado!

-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Procedures

2010-02-10 Por tôpico Marcel Araujo
Talvez, mas não seria muito agradável perder mais tempo pesquisando,
estudando e implementando esta alternativa. Estou fazendo como falei,
selects e inserts via scripts php.

-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Procedures

2010-02-09 Por tôpico Marcel Araujo
Galera, a encrenca toda é a seguinte. Possuo dois servidores com duas
versões diferentes do PostgreSQL. O primeiro servidor seria o de produção o
qual está rodando a versão 8.0.3 e o encoding desta base de produção é
SQL_ASCII. O segundo servidor está rodando a última versão do servidor de
banco de dados, 8.4.1 e o encoding do banco é UTF8. Agora o problema!!! Eu
criei uma procedure para importar os dados entre as bases diferentes mas
como descobri, não é possível acessar bases diferentes na mesma conexão.

Agora a questão toda, não posso criar um schema no segundo servidor porque
este está em UTF8 e assim, não permitindo a importação correta do backup da
base que está em SQL_ASCII.

Meio que fiz uma gambiarra. Criei um script em PHP onde eu faço SELECT's e
INSERT's... Mas se alguém possuir alguma solução melhor, ficaria grato!

-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Procedures

2010-02-08 Por tôpico Marcel Araujo
Obrigado!

Vou pesquisar sim... Até o momento a solução que acredito solucionar meu
problema é restaurar a base em um novo schema.



-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Procedures

2010-02-08 Por tôpico Marcel Araujo
Bom dia pessoal, estou criando um script em pl/pgsql e preciso acessar dados
em bases de dados diferentes. De que modo posso realizar isto?

seria +ou- de forma hierarquica? base.template.table

-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] pgAdmin 1.10.0

2009-12-15 Por tôpico Marcel Araujo
Os arquivos não são carregados no programa literalmente.

2009/12/15 Euler Taveira de Oliveira 

> Alisson Viegas escreveu:
> > Boa tarde, pessoal.
> >
> > Ao atualizar o pgAdmin 1.10, alguns scripts não são abertos.
> >
> O que você quer dizer com não são abertos?
>
>
> --
>  Euler Taveira de Oliveira
>  http://www.timbira.com/
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] pgAdmin 1.10.0

2009-12-15 Por tôpico Marcel Araujo
Tava enfrentando o mesmo problema mas não insisti muito por falta de tempo e
retornei para a versão anterior.

2009/12/15 Alisson Viegas 

>  Boa tarde, pessoal.
>
> Ao atualizar o pgAdmin 1.10, alguns scripts não são abertos.
>
> Clico no botão abrir, seleciono o arquivo SQL e nada acontece.
>
> Alguém já passou por isso?
>
>
>
> Conteúdo dos arquivos:
>
> delete from cpd.per;
>
> delete from cpd.frmtab;
>
> delete from cpd.frm;
>
> delete from cpd.ata;
>
> delete from cpd.cam;
>
>
>
> insert into cpd.frm VALUES (1101,'Acsiv',null,'Grupos e
> usuários',null,'appcpd','role',FALSE,FALSE);
>
> insert into cpd.frmtab VALUES (1101,'cpd','per');
>
> ...
>
>
>
> ou
>
>
>
> CREATE SCHEMA xxx;
>
>
>
> CREATE FUNCTION xxx.to_ascii(text)
>
> RETURNS text AS
>
> $BODY$
>
>SELECT
> TRANSLATE($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ','aiiioAIIIOcC');
>
> $BODY$
>
> LANGUAGE 'sql' IMMUTABLE STRICT;
>
>
>
> At.te,
> Alisson Viegas
> Acsiv Sistemas
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Erro no lwpostgis.sql

2009-11-27 Por tôpico Marcel Araujo
Meu amigo, geralmente eu compilo o Postgis individualmente mas há a
possibilidade de tu baixar o instalador propriamente dito do próprio site do
PostgreSQL que inclui o Stack Builder e nele tu inclui na instalação a
extensão Postigis, e assim, instalando tudo direitinho.

E o arquivo SQL vem sim no pacote, porém você não deve estar no diretório
correto onde ele se localiza que no meu caso é este e acredito que seja o
mesmo sempre!
*
cd /usr/share/postgresql-8.3-postgis/*
*createlang plpgsql base*
*psql -f lwpostgis.sql -d base*
*psql -f lwpostgis_upgrade.sql -d base*
*psql -f spatial_ref_sys.sql -d base*


2009/11/27 Vicente Martins 

> Bom dia pessoal.
>
> Sou espectador da lista já tem um bom tempo, mas só agora tive a
> necessidade de escrever para ela, portanto, este é meu primeiro post.
>
> Recentemente instalei o Debian lenny( venho do Ubuntu) e  para instalar o
> postgresql e a extensao espacial postgis usei o aptitude:
>
> # aptitude install postgresql postgis postgresql-8.3-postgis
>
> Na configuracao do lwpostgis.sql, que é um arquivo que carrega os objetos
> do postgis eu encontrei o seguinte erro:
>
> lwpostgis.sql: Arquivo ou diretório não encontrado
>
> Bem, quando eu instalo o postgis da forma como instalei, o lwpostgis.sql
> nao ja vem incluido no pacote?
> Se eu estiver escrevendo besteira, por favor corrijam.
>
> Como devo proceder para resolver o problema?
>
> Agradeço desde já a atençao.
>
> --
> Vicente Martins
> Analista de Geoinformação - IFPB
> http://geomartinsblog.blogspot.com/
>
> +55 83 88932202
> +55 83 96141969
>
>
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://www.kombo.com.br/meucurriculo/marcelaraujo
http://www.twitter/marcelaraujo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conexões que se Multiplicam

2009-11-24 Por tôpico Marcel Araujo
Provavelmente estejam abrindo uma conexão nova para cada consulta ao banco e
não estão fechando esta logo após. Aparentemente é a resposta mais
cabível!!!

2009/11/24 SetaDigital - Especialista em Lojas de Calçados <
cont...@setadigital.com.br>

> Bom dia pessoal...
>
> Instalamos o sistema em uma rede de lojas e uma dela acessa via internet.
> O sistema é desktop, utilizamos Postgres 8.3 com servidor Linux e estamos
> acostumados a trabalhar dessa maneira sem problemas.
> Mas neste cliente está acontecendo das conexões se "Multiplicarem", e
> rapidamente temos 60, 70 conexões ativas em uma loja com 6 computadores.
> Detalhes: não da erro no sistema, tudo funciona normalmente, mas tivemos
> que
> aumentar o número de conexões para poder trabalhar.
> Aos poucos as conexões antigas vão fechando.
> Outro detalhe é que muda o PID da conexão
>
>
> Vanderlei Marcos Kichel
> cont...@setadigital.com.br
>
> ___
> SetaDigital Comércio de Sistemas Gerenciais Ltda
> Rua Voluntários da Pátria, 1415 Sala 302 - Centro
> Cascavel - Paraná - Cep 85.812-160
> Telefone: (45) 3222-7511
> www.setadigital.com.brativa no terminal.
>
> Gostaria de saber o que pode causar isso e como resolver?
>
> Grande abraço e obrigado a todos desde já.
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ENVIO DE E-MAIL VIA POSTGRES

2009-10-30 Por tôpico Marcel Araujo
Então George, apenas confirmastes o que eu disse!!!

O postgresql é somente o bd e não o "cara" que envia os emails como o Israel
falou. A parte de enviar email geralmente se dá através da linguagem de
programação a ser utilizada em conjunto com o banco de dados. Geralmente se
usa a função MAIL dos servidores Unix/Linux ou qualquer outro servidor de
email que esteja configurado.


2009/10/29 Joao Cosme de Oliveira Junior 

> usa um pl/sh da vida
> ai e dois tempos...
>
>
> João Cosme de Oliveira Júnior
>
> Seja inteligente, use Software-livre!!!
> LPI Certified
> LPI000185554
>
>
> Em 29/10/2009 às 18:06 horas, pgbr-ge...@listas.postgresql.org.brescreveu:
>
> 2009/10/29 Israel Teixeira :
>
> > BOA TARDE,
>
> Boa tarde, por que gritas?
>
> > ALGUEM TEM ALGUMA FUNÇÃO OU DICA PARA ENVIO DE E-MAIL UTILIZANDO UMA
> FUNÇÃO
>
> http://pgmail.sourceforge.net/
>
> -Leo
> --
> Leonardo Cezar
> http://www.aslid.org.br
> http://postgreslogia.wordpress.com
> http://www.dextra.com.br/postgres
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
>  "Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO), 
> empresa pública federal regida pelo disposto na Lei Federal nº 5.615, é 
> enviada exclusivamente a seu destinatário e pode conter informações 
> confidenciais, protegidas por sigilo profissional. Sua utilização 
> desautorizada é ilegal e sujeita o infrator às penas da lei. Se você a 
> recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente, 
> esclarecendo o equívoco."
>
> "This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a 
> government company established under Brazilian law (5.615/70) -- is directed 
> exclusively to its addressee and may contain confidential data, protected 
> under professional secrecy rules. Its unauthorized use is illegal and may 
> subject the transgressor to the law's penalties. If you're not the addressee, 
> please send it back, elucidating the failure."
>
>
> _______
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ENVIO DE E-MAIL VIA POSTGRES

2009-10-29 Por tôpico Marcel Araujo
Concordo que assim como python permite, outras linguagens também mas até
onde eu entendi é que o amigo acima deseja pegar as informações contidas num
bd postgresql e enviar aos clientes, usuários,etc e através do postgresql
enviar os emails! Isto até onde eu sei e digo que posso estar enganado, é
inviável. Claro que pode haver alguma biblioteca ou módulo adicional com
estas funcionalidades, mas somente talvez e até hoje nunca vi nada igual. E
volto a afirmar, isto seria totalmente fora do objetivo de um banco de dados
que é prover gerencialmento de dados e não enviar emails!!!

Ou será que estou tão desinformado assim?!

2009/10/29 George Silva 

> Bem, imagino que ele quer utilizar o banco para gerar alguns tipos de
> email, com informações de clientes.
>
> Ler uma tabela clientes, determinar o tipo do email q ele precisa mandar
> (cobrança, convite, agradecimento, sei lá), e construir o email na
> aplicação, que será enviado por um servidor.
>
> Possível de se fazer é. E Python lhe permite um monte de coisas legais.
>
> Israel, detalhe mais o seu problema, pois assim o pessoal poderá entender
> melhor sua dúvida e lhe ajudar.
>
> Att.
>
> George
>
>
> On Thu, Oct 29, 2009 at 6:06 PM, Leonardo Cezar  wrote:
>
>> 2009/10/29 Israel Teixeira :
>> > BOA TARDE,
>>
>> Boa tarde, por que gritas?
>>
>> > ALGUEM TEM ALGUMA FUNÇÃO OU DICA PARA ENVIO DE E-MAIL UTILIZANDO UMA
>> FUNÇÃO
>>
>> http://pgmail.sourceforge.net/
>>
>> -Leo
>> --
>> Leonardo Cezar
>> http://www.aslid.org.br
>> http://postgreslogia.wordpress.com
>> http://www.dextra.com.br/postgres
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
>
> --
> George R. C. Silva
>
> Desenvolvimento em GIS
> www.sextantegeo2.blogspot.com
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ENVIO DE E-MAIL VIA POSTGRES

2009-10-29 Por tôpico Marcel Araujo
Só para complementar, acho que fugiria completamente do objetivo de um BD.

2009/10/29 Marcel Araujo 

> Não seria através de uma linguagem de programação ao invés do bd?
>
> Tipo php, java, etc...
>
> Espero não estar enganado e se estiver que me corrijam mas não acredito que
> bd algum faça isto!
>
> 2009/10/29 Israel Teixeira 
>
>> BOA TARDE,
>>
>> ALGUEM TEM ALGUMA FUNÇÃO OU DICA PARA ENVIO DE E-MAIL UTILIZANDO UMA
>> FUNÇÃO EM POSTGRESQL, FIZ ALGUNS TESTES UTILIZANDO PYTHON MAS SEM SUCESSO
>> ATÉ O MOMENTO.
>>
>> OBRIGADO !!
>>
>> --
>> ITSilva
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> Abraços..
>
> Marcel Araujo
> System Analyst
> Developer Java/PHP/RIA
> Linux User #490101
>



-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ENVIO DE E-MAIL VIA POSTGRES

2009-10-29 Por tôpico Marcel Araujo
Não seria através de uma linguagem de programação ao invés do bd?

Tipo php, java, etc...

Espero não estar enganado e se estiver que me corrijam mas não acredito que
bd algum faça isto!

2009/10/29 Israel Teixeira 

> BOA TARDE,
>
> ALGUEM TEM ALGUMA FUNÇÃO OU DICA PARA ENVIO DE E-MAIL UTILIZANDO UMA FUNÇÃO
> EM POSTGRESQL, FIZ ALGUNS TESTES UTILIZANDO PYTHON MAS SEM SUCESSO ATÉ O
> MOMENTO.
>
> OBRIGADO !!
>
> --
> ITSilva
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] alterar o dono de todas tabelas do banco

2009-09-05 Por tôpico Marcel Araujo
Ahh, uma pequena alteração, me esqueci que não é permitido retorno de
valores como FALSE ON NULL INPUT então o correto seria

$$
LANGUAGE 'plpgsql'
IMMUTABLE
RETURNS NULL ON NULL INPUT;



2009/9/5 Marcel Araujo 

> Acredito que para ficar mais elegante ainda faria umas pequenas
> alterações!!!
>
> 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/9/4 Fabrízio de Royes Mello 
>
>>
>>
>> 2009/9/4 JotaComm 
>>
>>> Olá,
>>>
>>> Segue a minha solução:
>>>
>>> CREATE OR REPLACE FUNCTION change_owner(TEXT,TEXT)
>>> RETURNS boolean AS $$
>>> DECLARE
>>>   comando TEXT;
>>>   lista RECORD;
>>> BEGIN
>>>   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=$1
>>> AND pg_class.relkind IN (‘r’,‘v’,‘S’)
>>>   LOOP
>>> IF lista.relkind=‘S’ THEN
>>>   comando:=‘ALTER SEQUENCE ‘ || lista.relname || ‘ OWNER TO ‘ ||
>>> quote_ident($2);
>>>   RAISE NOTICE ‘‘, comando;
>>> ELSE
>>>   comando:=‘ALTER TABLE ‘ || lista.relname || ‘ OWNER TO ‘ ||
>>> quote_ident($2);
>>>   RAISE NOTICE ‘‘, comando;
>>> END IF;
>>> EXECUTE comando;
>>>   END LOOP;
>>> IF FOUND THEN
>>>   RETURN TRUE;
>>> END IF;
>>> RETURN FALSE;
>>> END;
>>> $$ LANGUAGE PLPGSQL;
>>>
>>
>> Se me permites adicionar um "plus" e uns ajustes :
>>
>> * alterar o dono do schema passado por parametro
>> * colocar o schema.tabela nos ALTER ...
>> * compatibilidade com versoes menores que 8.4
>>
>> CREATE OR REPLACE FUNCTION change_owner(TEXT,TEXT)
>> RETURNS boolean AS $$
>> DECLARE
>>   comando TEXT;
>>   lista   RECORD;
>> BEGIN
>>   comando := 'ALTER SCHEMA ' || quote_ident($1) || ' OWNER TO ' ||
>> quote_ident($2);
>>   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=$1
>>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($2);
>>   RAISE NOTICE '%', comando;
>> ELSE
>>   comando := 'ALTER TABLE ' || quote_ident(lista.nspname) || '.' ||
>> quote_ident(lista.relname) || ' OWNER TO ' || quote_ident($2);
>>   RAISE NOTICE '%', comando;
>> END IF;
>> EXECUTE comando;
>>   END LOOP;
>>
>>   IF FOUND THEN
>> RETURN TRUE;
>>   END IF;
>>   RETURN FALSE;
>> END;
>> $$ LANGUAGE plpgsql;
>>
>>
>> Gostei bastante dessa sua solução Jota... qdo eu precisava eu rodava um
>> script gerando as DDLs... assim fica mais elegante e prático...
>>
>>
>> Cordialmente,
>> --
>> Fabrízio de Royes Mello
>> >> Blog sobre TI: http://fabriziomello.blogspot.com
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> Abraços..
>
> Marcel Araujo
> System Analyst
> Developer Java/PHP/RIA
> Linux User #490101
>



-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] alterar o dono de todas tabelas do banco

2009-09-05 Por tôpico Marcel Araujo
Acredito que para ficar mais elegante ainda faria umas pequenas
alterações!!!

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/9/4 Fabrízio de Royes Mello 

>
>
> 2009/9/4 JotaComm 
>
>> Olá,
>>
>> Segue a minha solução:
>>
>> CREATE OR REPLACE FUNCTION change_owner(TEXT,TEXT)
>> RETURNS boolean AS $$
>> DECLARE
>>   comando TEXT;
>>   lista RECORD;
>> BEGIN
>>   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=$1
>> AND pg_class.relkind IN (‘r’,‘v’,‘S’)
>>   LOOP
>> IF lista.relkind=‘S’ THEN
>>   comando:=‘ALTER SEQUENCE ‘ || lista.relname || ‘ OWNER TO ‘ ||
>> quote_ident($2);
>>   RAISE NOTICE ‘‘, comando;
>> ELSE
>>   comando:=‘ALTER TABLE ‘ || lista.relname || ‘ OWNER TO ‘ ||
>> quote_ident($2);
>>   RAISE NOTICE ‘‘, comando;
>> END IF;
>> EXECUTE comando;
>>   END LOOP;
>> IF FOUND THEN
>>   RETURN TRUE;
>> END IF;
>> RETURN FALSE;
>> END;
>> $$ LANGUAGE PLPGSQL;
>>
>
> Se me permites adicionar um "plus" e uns ajustes :
>
> * alterar o dono do schema passado por parametro
> * colocar o schema.tabela nos ALTER ...
> * compatibilidade com versoes menores que 8.4
>
> CREATE OR REPLACE FUNCTION change_owner(TEXT,TEXT)
> RETURNS boolean AS $$
> DECLARE
>   comando TEXT;
>   lista   RECORD;
> BEGIN
>   comando := 'ALTER SCHEMA ' || quote_ident($1) || ' OWNER TO ' ||
> quote_ident($2);
>   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=$1
>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($2);
>   RAISE NOTICE '%', comando;
> ELSE
>   comando := 'ALTER TABLE ' || quote_ident(lista.nspname) || '.' ||
> quote_ident(lista.relname) || ' OWNER TO ' || quote_ident($2);
>   RAISE NOTICE '%', comando;
> END IF;
> EXECUTE comando;
>   END LOOP;
>
>   IF FOUND THEN
> RETURN TRUE;
>   END IF;
>   RETURN FALSE;
> END;
> $$ LANGUAGE plpgsql;
>
>
> Gostei bastante dessa sua solução Jota... qdo eu precisava eu rodava um
> script gerando as DDLs... assim fica mais elegante e prático...
>
>
> Cordialmente,
> --
> Fabrízio de Royes Mello
> >> Blog sobre TI: http://fabriziomello.blogspot.com
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tipo sequencial

2009-09-01 Por tôpico Marcel Araujo
Ah, como retorno de função seria como disse antes, retornar o valor da
sequência que a função chama.

2009/9/1 Marcel Araujo 

> É um integer com possibilidade de incremento automático por meio de chamada
> de função
>
> CREATE SEQUENCE sequencia_id;
>
> SELECT NEXTVAL('sequencia_id');
> retornaria o número 1
>
> SELECT NEXTVAL('sequencia_id');
> retornaria o número 2
>
> SELECT CURVAL('sequencia_id')
> retornaria o número 2
>
> Ele serve, também, para gerar números com incrementos personalizados, um
> valor inicial, valor máximo e mínimo. Eu o utilizo para gerar números para
> minhas PK's das tabelas.
>
> Docs da Sequence
> http://tinyurl.com/2zopd8
>
>
> 2009/9/1 Andre Fernandes 
>
>> Olá a todos,
>>
>> Qual a função de usar um tipo sequencia para uma coluna em uma tabela ou
>> como retorno de uma função? O tipo de uma tabela para mim é bem simples de
>> se visualizar, contudo um tipo igual a uma sequence não consegui imaginar
>> como ou porque utilizar.
>>
>> Obrigado pelas respostas,
>> --
>> André de Camargo Fernandes
>>
>>
>>
>> _______
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> Abraços..
>
> Marcel Araujo
> System Analyst
> Developer Java/PHP/RIA
> Linux User #490101
>



-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tipo sequencial

2009-09-01 Por tôpico Marcel Araujo
É um integer com possibilidade de incremento automático por meio de chamada
de função

CREATE SEQUENCE sequencia_id;

SELECT NEXTVAL('sequencia_id');
retornaria o número 1

SELECT NEXTVAL('sequencia_id');
retornaria o número 2

SELECT CURVAL('sequencia_id')
retornaria o número 2

Ele serve, também, para gerar números com incrementos personalizados, um
valor inicial, valor máximo e mínimo. Eu o utilizo para gerar números para
minhas PK's das tabelas.

Docs da Sequence
http://tinyurl.com/2zopd8


2009/9/1 Andre Fernandes 

> Olá a todos,
>
> Qual a função de usar um tipo sequencia para uma coluna em uma tabela ou
> como retorno de uma função? O tipo de uma tabela para mim é bem simples de
> se visualizar, contudo um tipo igual a uma sequence não consegui imaginar
> como ou porque utilizar.
>
> Obrigado pelas respostas,
> --
> André de Camargo Fernandes
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Abraços..

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] pg_dump desordenado

2007-07-26 Por tôpico Marcel
Prezados(as)
 
Preciso restaurar um dump de um banco com aproximadamente 30 schemas e 
mais de uma centena de tabelas. Estão ocorrendo alguns erros de violação 
de chave estrangeira, pois várias tabelas filhos estão sendo restauradas 
antes das tabelas pais, como muitas vezes ocorre com backups feitos com 
o pg_dump.
Em outras vezes, eu editei o dump e alterei manualmente a ordem das 
tabelas, mas dessa vez é muita coisa e está praticamente inviável.
Alguma sugestão? Existe alguma maneira de desabilitar todas as FK e 
depois habilitá-las novamente?
 
[]'s
 
Marcel
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] pg_auth

2007-06-26 Por tôpico Marcel



O PostgreSQL mantém os metadados (informações sobre o BD) no que
chamamos de catálogo do sistema. Esse catálogo é de certo modo
compartilhado por todas as sessões. Onde os "flat files" entram na
história? O problema é que como as informações necessárias para
autenticação estão no catálogo (banco de dados) não há uma maneira de
autenticar-se sem utilizar uma conexão pré-estabelecida (para ler algo
do catálogo é necessário estar conectado). Daí, o que o PostgreSQL faz é
manter atualizado as informações sobre banco de dados (pg_database) e
usuários (pg_auth) no sistema de arquivos (global/*) para que o sistema
de autenticação funcione.
  

Valeu, Euler.

Pelo que entendi, o arquivo seria usado para autenticar o usuário 
"antes" de estabelecer a conexão com o banco.

Bem, fiz alguns testes, tentando simular uma quebra de segurança
1) excluí o arquivo: não houve problema, conectei normalmente
2) alterei o md5 da senha "na mão": não houve problema, a conexão 
continuou apenas com a senha original
3) sobrepus o arquivo com outro: também não houve problema, a conexão 
continuou apenas com a senha original.


Ou seja, pelo que vi, realmente ele não causa um perigo na segurança, 
como acontece (ou acontecia, não sei como está na versão 2.0) no 
Firebird, que permitia acesso através da sobreposição do security.fbd.
Apenas continuo então não entendendo a finalidade dele. Se o seu 
conteúdo não afeta a conexão, então em que situação ele é utilizado pelo 
PostgreSQL?



No  caso da tabela pg_auth (usuários) ela armazena o login, senha dentre
outras informações. Dependendo do tipo de autenticação que se utiliza
ele pode ou não armazenar a senha ali; ela só armazena a senha em texto
(sem criptografia) caso o tipo de autenticação seja *password*. Esse
tipo de autenticação foi desaconselhada desde a versão 7.2 e só está
disponível para compatibilidade com versões anteriores.
Não há o que temer, o PostgreSQL é um dos bancos de dados mais seguros
do mundo. Não é a toa que ele tem pouquíssimas queixas do pessoal da
área de segurança ao contrário dos concorrentes comerciais.


  

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] pg_auth

2007-06-25 Por tôpico Marcel

Prezados(as)

Pesquisando no histórico da lista, encontrei a msg abaixo sobre o 
arquivo pg_auth. Não encontrei esse arquivo em alguns bancos daqui 
(versão 8.0.3, instalados em Debian Etch).


Minha dúvidas é se esse arquivo pode ser excluído sem problemas, o que 
eliminaria a questão quebra de segurança em caso de sobreposição do 
mesmo, descrita pelo Steve Howe.


Fiz pesquisas no google e na documentação do PostgreSQL e não encontrei 
quase nada sobre ele. Na verdade, há uma referência em 
http://www.postgresql.org/docs/techdocs.79 , que não esclarece nada.

Fiz uma instalação da versão 8.1.8 e o arquivo realmente foi instalado em
/var/lib/postgresql/8.1/main/global, mas eu o renomeei e nada aconteceu.

[]'s

Marcel



Re: [postgresql-br] Arquivo pg_pwd

Sexta-feira, 31 de março de 2006, 16:08:27, você escreveu:


Alguem confirma essa, por favor.



Fiquei sabendo que existe um arquivo na pasta do postgre, por exemplo
C:\Arquivos de programas\PostgreSQL\8.0\data\global que possui um
arquivo chamado pg_pwd que se editado da para ver que sao os usuarios e
senhas do banco da dados. E verdade que e possivel apenas copiar /
sobrepor este arquivo pelo que vem na instalacao do banco ou seja
usuario postgres e senha postgres e ai o camarada podera ter acesso
a tudo dentro do banco. Alguem sabe se isso e verdade. Se for e bem
fragil este esquema.


O nome do arquivo é "pg_auth" e não "pg_pwd", todos os arquivos naquele
diretório estão com as permissões devidamente definidas (0600), e o que
se tem neles é o hash MD5 das senhas, o que seria inútil mesmo que
alguém viesse a ter acesso a esse arquivo.

Exemplo:

carcass# cat pg_auth
"howe" "md58378a43cd60a5004626045485ae8b67d" ""
"temp" "md5d5bf0f423a04852d9c2228efa35c8af2" ""

Se por outro lado as senhas foram criadas sem hash, então, sim, elas
aparecem no arquivo:

howe=# create user dumb with unencrypted password 'senha';
CREATE ROLE

carcass# cat pg_auth
"howe" "md58378a43cd60a5004626045485ae8b67d" ""
"dumb" "senha" ""
"temp" "md5d5bf0f423a04852d9c2228efa35c8af2" ""

Quem deve restringir o acesso ao arquivo é a segurança do sistema
operacional. Os sistemas linux/unix armazenam seus usuários e senha em
arquivos conhecidos (/etc/passwd, /etc/group/, /etc/shadow, etc.) e nem
por isso são inseguros. O que é necessário é que as permissões de tal
arquivo estejam devidamente setadas para que usuãrios não autorizados
não consigam lê-lo - e o PostgreSQL o faz assim por default.

--
Um abraço,
Steve Howe mailto:[EMAIL PROTECTED] 



___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral