내 구성 ( Ubuntu 10.04.3
및 PostgreSQL 8.4
)에서 내가 로그인 한 사용자 이름이 .pgpass
파일 에서 비밀번호를 얻으려고하는 사용자 이름과 같을 때 마침내 작동하도록 할 수 있습니다.
로 로그인 deployer
하여 .pgpass
파일 을 사용하여 appname
Unix 사용자가없는 user name 소유의 데이터베이스에 액세스 하려고했습니다 . 사용자로 데이터베이스에 액세스 .pgpass
하기 시작하기 전까지 는 작업을 할 수 없었습니다 deployer
...
내 /home/deployer/.pgpass
파일 내용 은 다음과 같습니다 .
*:*:*:deployer:password
여기에 한 부분이 있습니다 /etc/postgresql/8.4/main/pg_hba.conf
:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
보시다시피, 모든 연결에는 암호 ( md5
) 가 필요합니다 .
이 구성을 사용하면이 명령으로 만든 데이터베이스가 있다고 가정합니다.
deployer@ubuntu-server:~$ createdb -T template0 -O deployer -E UTF8 dbname
비밀번호를 입력하지 않고 다음 작업을 수행 할 수 있습니다.
deployer@ubuntu-server:~$ dropdb dbname
곧 내가 나의 이름 변경으로 .pgpass
까지를 .pgpass-no
,이 암호가 필요합니다.
BTW, .pgpass
파일에 0600
권한이 있어야 함을 잊지 마십시오 .
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
-U
에 플래그dropdb
와createdb