Eu gostaria de compartilhar online, com os membros da equipe, algumas modificações ao vivo em um banco de dados PostgreSQL (hospedado em um Debian Bullseye dockerizado) usando watch
(se você conhece alguma outra ferramenta, de preferência pgAdmin4 , mas não consegui descobrir uma maneira de assistindo para viver modificações com ele, por favor me avise).
No momento estou fazendo da seguinte forma:
$ PGPASSWORD=***************
$ reset
$ watch -n 1.0 "psql \
-d postgresql://postgres:${PGPASSWORD}@localhost:5432/dbname \
-c 'select id,name,customer,order,product from public.table where id in (1,2,3,4) order by (id)';"
para que a senha não seja armazenada no histórico do bash (observe o espaço em branco na frente da primeira linha) e não fique mais visível na tela após a chamada para reset
(a máquina host está no Ubuntu 18.04).
Mas quando o watch
comando é iniciado, ele realmente exibe a "tradução" da string de consulta de conexão completa em texto simples na parte superior da tela, exibindo a senha do banco de dados (ou qualquer outra variável):
Every 1.0s: psql -d postgresql://postgres:mysecretpassword@localhost:5439/dbname -c (...)
...
Existe alguma chance de escondê-lo?
Sim, use a
-t
opção, que, conforme afirma o doc:turn off header
.Isso imprimirá apenas a saída do comando chamado.
Mais informações:
Por que não usar o arquivo pgpass ? É muito mais seguro, eu acho.