본문 바로가기
카테고리 없음

[Postgresql] 자동로그인 설정

by 쿡노트 2025. 4. 11.
반응형

postgresql은 리눅스 CLI에서 접속하려면, psql 명령어 이후 패스워드를 요구하고 패스워드 입력 후 접속이 된다. (psql connection 옵션 중 패스워드 입력받는 옵션은 없다.)

 

$ psql -U 사용자명 -d DB명
Password for user 사용자명:

 

참조로, pg_hba.conf 파일 설정에 METHOD(패스워드 전송방식)에 trust로 설정하면, 패스워드 입력 없이 접속 가능하다. (운영 환경에서는 일반적으로 md5 또는 scram-sha-256 암호화 방법 적용 권장)

 

쉘 스크립트등에서 Postgresql 자동로그인을 하려면 Posgtgresql 제공하는 .pgpass 파일을 작성하여 사용하면 된다.

.pgpass 파일 작성

$ vi ~/.pgpass
hostname:port:database:username:password
$ chmod 600 ~/.pgpass

#.pgpass 파일 작성 예시
localhost:5432:postgres:postgres:password
192.168.100.100:5432:postgres:postgres:password

# 또는 * (와일드카드) 사용
# 패스워드를 제외한, host, port, database, username 에는 와일드카드를 사용할 수 있다.
*:*:*:*:password
# 모든 IP, Port, Database, Username 허용. 패스워드는 일치해야 한다.


참조) 파일권한 600을 주지 않으면 경고문구가 나온다.

$ psql -d postgres -U postgres
WARNING: password file "/home/postgres/.pgpass" has group or world access; permissions should be u=rw (0600) or less

접속 (자동로그인)

#로컬호스트 접속
$ psql -d postgres -U postgres
psql (15.10)
Type "help" for help.

postgres=#

#.pgpass에 host를 기재하면, 접속 옵션에 host 기재 필요
$ psql -d postgres -U postgres -h 192.168.100.100

 

참조) psql connection 옵션 중에 -W (패스워드 입력 강제 요구) 있는데, 자동로그인과는 관련 없다.

# -W 옵션 적용
$ psql -U 사용자명 -d DB명 -W
Password:

# -W 옵션 적용 (뒤에 입력된 password는 무시)
$ psql -d postgres -U postgres -W 'password'
psql: warning: extra command-line argument "password" ignored
Password:
반응형