![역할을 사용하여 psql 실행](https://linux55.com/image/214484/%EC%97%AD%ED%95%A0%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20psql%20%EC%8B%A4%ED%96%89.png)
set role ...
psql을 사용할 때 항상 질문을 먼저 발행 해야 합니다 .
대화형 명령을 수락하기 전에 이를 자동화할 수 있습니까?
예를 들어:
psql -h HOST -U USER -c "set role 'ROLE';" -f -
이것은 입력을 직접 읽는 것(readline 없음)을 제외하고는 내가 원하는 것을 거의 수행합니다.
-U ROLE
해당 역할이 로그인을 허용하지 않기 때문에 사용할 수 없습니다 .
답변1
-X 옵션이 전달되지 않으면 psql은 데이터베이스에 연결한 후 일반 명령을 수락하기 전에 시스템 전체 시작 파일(psqlrc)과 사용자의 개인 시작 파일(~/.psqlrc)에서 명령을 읽고 실행하려고 시도합니다.
그리고:
환경 PSQLRC 사용자 .psqlrc 파일의 대체 위치입니다. 물결표(~) 확장을 수행합니다.
따라서 set-role.sql 파일을 만들 수 있습니다.
set role 'ROLE';
그런 다음 실행
PSQLRC=set-role.sql psql -h HOST -U USER
psql은 set 명령을 실행한 다음 프롬프트(자동 완성 기능 포함)를 표시합니다.