我想与团队成员在线分享PostgreSQL数据库(托管在 dockerized Debian Bullseye 上)的一些实时修改watch
(如果您知道任何其他工具,最好是pgAdmin4 ,但我无法找到一种方法观看现场修改,请告诉我)。
目前我正在这样做:
$ 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)';"
这样密码就不会存储在 bash 历史记录中(请注意第一行前面的空格),并且在调用后它在屏幕上不再可见reset
(主机在 Ubuntu 18.04 上)。
但是当watch
命令启动时,它实际上在屏幕顶部显示了完整连接查询字符串到纯文本的“翻译”,因此显示了数据库密码(或任何其他变量):
Every 1.0s: psql -d postgresql://postgres:mysecretpassword@localhost:5439/dbname -c (...)
...
有隐藏的可能吗?
是的,使用
-t
选项,如文档所述:turn off header
.这只会打印调用命令的输出。
更多信息:
为什么不使用pgpass 文件?我认为这更安全。