역할을 사용하여 psql 실행

역할을 사용하여 psql 실행

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 명령을 실행한 다음 프롬프트(자동 완성 기능 포함)를 표시합니다.

관련 정보