
내 질문
postgres
사용자가 인터넷이 아닌 TCP 로컬 호스트에서만 로그인할 수 있도록 사용자(예: )에 대한 권한을 설정할 수 있습니까 ?
신뢰할 수 있는 소켓과 원격 암호
로컬 사용자가 비밀번호 없이 로그인하고 원격 호스트가 비밀번호로 로그인할 수 있도록 postgres를 초기화할 수 있다는 것을 알게 되었습니다.
initdb \
-D "$POSTGRES_DATA_DIR/" \
--username postgres --pwfile "$PWFILE" \
--auth-local=trust --auth-host=password
인트라넷과 인터넷
인터넷을 통해 연결되는 모든 시스템에 대해 매우 강력한(기억할 수 없는) 임의의 128비트 문자열을 가진 사용자를 사용하고 싶습니다.
그러나 로컬 및 인트라넷 액세스의 경우 기억하고 입력할 수 있는 사용자 이름과 비밀번호를 갖고 싶습니다.
이렇게 할 수 있나요... 아니면 연결이 허용된 시스템당 한 명의 사용자만 설정해야 합니까 .pgpass
?
(컴퓨터 간에 일반 텍스트 파일의 키를 공유하고 싶지 않습니다.)
답변1
PostgreSQL 버전에 대한 정보를 제공하지 않았습니다. PostgreSQL 12를 사용하고 있다고 가정합니다.
사용자가 인터넷이 아닌 TCP 로컬 호스트에서만 로그인할 수 있도록 사용자(예: postgres)에 대한 권한을 설정할 수 있습니까?
네, 사용하세요pg_hba.conf
. 다음을 통해 이것을 먼저 로드할 수도 있습니다.hba_file
런타임 구성.
그러나 로컬 및 인트라넷 액세스의 경우 기억하고 입력할 수 있는 사용자 이름과 비밀번호를 갖고 싶습니다.
비밀번호로 보호되는 로컬 전용 사용자를 추가하려면 다음을 추가하세요.
local <database_name> <local-only_user_name> scram-sha-256
당신의 pg_hba.conf
.
다음을 통해 먼저 사용자를 생성하고 싶을 것입니다 CREATE ROLE
.
CREATE ROLE username LOGIN ENCRYPTED PASSWORD 'insert-your-password-here';
인트라넷 및 인터넷 기반 인증을 구성하기 위해 추가할 항목을 확인 host
하고 기록 할 수도 있습니다 .hostssl
pg_hba.conf
자세한 내용은 링크된 문서를 확인하세요.