전체 연결 문자열을 표시하지 않고 `watch` PostgreSQL 쿼리

전체 연결 문자열을 표시하지 않고 `watch` PostgreSQL 쿼리

팀원들과 온라인으로 몇 가지 통찰력을 공유하고 싶습니다.포스트그레SQL데이터베이스(도커화된 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 (...)
...

숨길 기회가 있나요?

답변1

예, -t설명된 대로 이 옵션을 사용하십시오 turn off header.

그러면 호출된 명령의 출력만 인쇄됩니다.

추가 정보:

$ watch --help

Usage:
 watch [options] command

Options:
  -b, --beep             beep if command has a non-zero exit
  -c, --color            interpret ANSI color and style sequences
  -d, --differences[=<permanent>]
                         highlight changes between updates
  -e, --errexit          exit if command has a non-zero exit
  -g, --chgexit          exit when output from command changes
  -n, --interval <secs>  seconds to wait between updates
  -p, --precise          attempt run command in precise intervals
  -t, --no-title         turn off header
  -x, --exec             pass command to exec instead of "sh -c"

 -h, --help     display this help and exit
 -v, --version  output version information and exit

For more details see watch(1).

답변2

왜 사용하지 않습니까?pgpass 파일? 내 생각에는 이렇게 하는 것이 더 안전할 것 같다.

관련 정보