2011-03-24 2 views
47

postgresql 명령 'createuser myusername'을 사용합니다. 항상 암호를 묻습니다. 암호를 비워두면 암호가 지정되지 않았다는 오류가 발생합니다.PostgreSQL 사용자를위한 공백 암호 설정

공백/암호가없는 사용자를 만들고 싶습니다. Mac OS X에서 PostgreSQL 9를 사용하여 만들 수 없습니다.

암호가없는 사용자를 만들려면 어떤 단계를 따라야합니까? 이 명령은 항상 암호를 입력하도록 요청합니다.

답변

52

createuser으로 해결하려고하는 잘못된 트리를 짖고 있습니다. man 페이지에서 createuser을 확인하면 암호가 필요하고 --no-password를 설정하면 로그인이 실패합니다. createuser은 실제로 사용자를 만듭니다. 이 아니기 때문에 사용자가 인증해야하는 방법을 결정합니다.

인증은 주로 pg_hba.conf으로 처리되며 로그인시 암호를 요구할지 여부를 결정합니다. 내가 Linux의 OS X의에서 PostgreSQL을 실행 적이 내 배포판의 주식의 conf는 다음과 같습니다

# TYPE DATABASE  USER   CIDR-ADDRESS   METHOD 

# "local" is for Unix domain socket connections only 
local all    all          ident 
# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 

나는 당신이 개발을위한 접근을위한 첫 번째 줄처럼 뭔가를 만들 것입니다. 참고 : 은 --host 옵션이 설정되지 않은 경우 유닉스 소켓으로 연결을 시도합니다. 두 번째 줄은 연결하려고 할 때 사용됩니다 psql --host localhost

+1

여기서 mac os x 또는 linux 상자에있는 pg_hba.conf 파일의 위치는 어디입니까? – othman

+2

우분투의 경우,'/ etc/postgresql/9.0/main/pg_hba.conf' (PostgreSQL 9.0의 경우)에서 찾을 수 있습니다. – jmonteiro

+4

OS X 10.6.8의 경우,'/ Library/PostgreSQL/8.3/data/pg_hba.conf'에서 찾을 수 있습니다. 'postgres' 사용자가 소유하고 있으므로,'su postgres'를 편집해야합니다. – Chris

28

비밀번호가없는 사용자를 생성하는 대신 자동으로 비밀번호를 입력하여 .pgpass file을 생성하십시오. 이것은 libpq를 사용하여 연결하는 모든 응용 프로그램에서 존중합니다.이 응용 프로그램은 실제로 JDBC 드라이버와 .NET 드라이버를 제외한 모든 응용 프로그램에 연결됩니다.

+1

+1 pgpass가 이것을 수행하는 방법입니다. –

5

PG 사용자의 사용자 비밀번호를 변경하는 또 다른 방법은 postgres 콘솔 (로컬 PC의 postgres 사용자)에 로그인하는 것입니다. SQL 요청을 발행하십시오 :

$ sudo -u postgres psql -w 

# ALTER USER postgres WITH PASSWORD ''; 
+0

서버가 필요할 경우 계정을 비활성화 할 수 있습니다. 암호! – 0atman

+1

이 작동하지 않습니다. 오류 : psql : fe_sendauth : 암호가 제공되지 않았습니다. – Romulus

+0

@Romulus는 시스템 사용자'postgres'에 대해 암호를 먼저 설정 했습니까? 또한'-w'와 같이'psql -w'를 시도해야합니다. –