Backup Postgree

Olá pessoal!

Para fazer backup do postgree não é necessario informar senha?

fiz assim:/usr/bin/pg_dump --host localhost --port 5432 --username postgres --format plain --create --verbose --file "Área de Trabalho/pg" "Teste"

E funcionou! Onde entra a senha?

Olá amigo,

sou entusiasta do Post! Embora, confesso não ter muita prática em ambiente linux, mas, penso que a senha, vc irá precisar para acessá-lo no momento que for restaurá-lo.

Descobrindo, nos comunique.

Mas com esse comando /usr/bin/pg_dump --host localhost --port 5432 --username postgres –format plain --create --verbose --file “Área de Trabalho/pg” “Teste” eu gero um arquivo tipo o .sql do mysql, com os creates, inserts, etc… assim é possivel qualquer um ver o conteudo do banco

bem, as configurações do arquivo pg_hba.conf é que definem se uma conexão requisita ou não a senha do usuario. em todo caso quando você estiver fazendo o dump pode usar o parametro -W para forçar que a senha seja requerida, mas esse já é o comportamento padrão, salvo os casos em que as configurações do pg_hba.conf dizem o contrario =)

Dê uma olhadinha no final do meu arquivo pg_hba.conf:

[code]# DO NOT DISABLE!

If you change this first entry you will need to make sure that the

database

super user can access the database using some other method.

Noninteractive

access to all databases is required during automatic maintenance

(custom daily cronjobs, replication, and similar tasks).

Database administrative login by UNIX sockets

local all postgres ident

TYPE DATABASE USER CIDR-ADDRESS METHOD

“local” is for Unix domain socket connections only

local all all ident

IPv4 local connections:

host all all 127.0.0.1/32 md5

IPv6 local connections:

host all all ::1/128 md5[/code]

Ele já está para pedir senha ao se logar… se não estaria “trust” aonde é md5 né?

A sua sugestão de colocar -W no comando funcionou, ele pediu senha mas preciso fazer isso tudo em um unico comando. Do jeito que está, quando ele tenta rodar o comando, pede senha e fica esperando, isso não poderia acontecer pois se trata de arquivo em lote (shell script)
Olha como está o meu .sh:

#!/bin/bash /usr/bin/pg_dump --host localhost --port 5432 --username postgres --format custom --blobs --verbose -W --file "/home/gustavo/TESTE/pg" "Teste"
mas quando ele executa isso pede senha em seguda, não teria como informar a senha ja nesse comando?

É que o usuario não vai abir o .sh pelo console, é a minha aplicação java quem chama e dessa forma não consigo passar a senha.

oi colega faço o mesmo que voce ta fazendo tipo fazer backup via script. Realmente e chato passar a senha via OutputStream, nunca consequi fazer isso.
realmente e melhor fazer dessa forma pela facilidade de programação mas e possivel passar a senha so não sei como se descobrir posta aqui por favor.

pessoalmente acho muito inseguro essa configuração pg_hba.conf.
sequndo dicas que pequei pela net, e melhor configurar o arquivo .pgpass no linux e no windows pgpass.conf
e mais seguro ja que nele voce pode especificar o host a porta e o usuario e o banco que deve ter esse tipo de acesso
sem senha.

faço assim:

o arquivo no linux se localiza na pasta de usuario logado.
casso ele não exista voce pode cria e dar a permiçao se ñ me engano,
ñ tenho certeza mas deve ser isso:

chmod 0600 $HOME/.pgpass

$HOME é uma variavel de ambiente do linux que contem o path completo da pasta de home logado

no arquivo ponha essa unica linha

nome_do_host:numero_da_porta:nome_da_base_de_dados:nome_usuario_do_backup:senha_do_usuario_de_backup

se vc quiser que o backup possa ser executado de qualquer host entam no nome do host substitua por “*”

como tinha falado que dessa forma da um ar a mais de segurança, se o backup é realizado apenas por um DBA ou outro quanquel,
vc pode configura para isso ser realizado sem autenticação apenas por uma unica maquina da rede.

agora é so desconfigurar o pg_hba.conf para não receber mais conexão sem senha de qualquer um que seja.

[color=red]obs:“Ele já está para pedir senha ao se logar… se não estaria “trust” aonde é md5 né?”[/color]

to desenvolvendo uns codigo para fazer o backup de um cliente qualquer da rede no servidor e copiar o dump para o cliente. ñ deixando salvo no servidor
e para mysql mas da forma que to fazendo creio em 100% que funcionarar no postgresql, assim que testa e der certo posto aqui também.

uma coisa que aprendi nessa vida de estudante [color=red]" conhecimento compartilhado para todos" [/color]

seque o link do munual do postgres se vc ñ tiver problemas com o ingles, dei um refoço ai encima devido a isso:

http://www.postgresql.org/docs/8.2/interactive/libpq-pgpass.html

Lendo a documentação

http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html

http://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-IDENT

Entendi que sua primeira configuração

"
local all postgres ident
"
está liberando o usuário postgres para conexões locais para validação por ident

"
ident
Obtain the operating system user name of the client by contacting the ident server on the client and check if it matches the requested database user name. Ident authentication can only be used on TCP/IP connections. When specified for local connections, peer authentication will be used instead. See Section 19.3.6 for details.
"
A validação por ident utiliza o seu usuário local. E, no meu entendimento, como o pg_dump é uma aplicação de SO deve abrir um processo no usuário POSTGRES.
Acredito que este seja o motivo de você não precisar usar senha.

As demais configurações estão normais.