[postgresql] 새로 설치 한 후 Postgresql에 어떻게 로그인하고 인증합니까?
민트 우분투에 postgres 8.4를 새로 설치했습니다. Postgres 용 사용자를 생성하고 psql을 사용하여 로그인하려면 어떻게해야합니까?
psql을 입력하면
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
답변
두 가지 방법을 사용할 수 있습니다. 둘 다 사용자 와 데이터베이스를 생성해야 합니다.
기본적으로 psql은 사용자와 동일한 이름으로 데이터베이스에 연결합니다. 그래서 “사용자의 데이터베이스” 를 만드는 규칙이 있습니다. 그리고 사용자가 하나의 데이터베이스 만 필요로한다면 그 규칙을 어길 이유가 없습니다. 우리가 사용하게 될 mydatabase
예제 데이터베이스 이름으로.
-
createuser 및 createdb를 사용 하여 데이터베이스 이름을 명시 할 수 있습니다.
$ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabase
아마 그것을 완전히 생략하고 모든 명령이 사용자 이름으로 기본 설정되도록해야 할 것입니다.
$ sudo -u postgres createuser -s $USER $ createdb $ psql
-
SQL 관리 명령 사용 및 TCP를 통한 비밀번호로 연결
$ sudo -u postgres psql postgres
그리고 psql 셸에서
CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser;
그런 다음 로그인 할 수 있습니다.
$ psql -h localhost -d mydatabase -U myuser -p <port>
포트를 모르는 경우
postgres
사용자 로 다음을 실행하여 언제든지 가져올 수 있습니다 .SHOW port;
또는,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
사이드 노트 : postgres
사용자
사용자를 수정 하지 않는 것이 좋습니다 postgres
.
- 일반적으로 OS에서 잠겨 있습니다. 누구도로 운영 체제에 “로그인”해서는 안됩니다
postgres
. 으로 인증하려면 루트가 있어야합니다postgres
. - 일반적으로 암호로 보호되지 않으며 호스트 운영 체제에 위임합니다. 이것은 좋은 것 입니다. 이것은 일반적으로
postgres
SQL Server의 PostgreSQL에 해당하는 것으로 로그인SA
하려면 기본 데이터 파일에 대한 쓰기 액세스 권한이 있어야 함을 의미합니다. 그리고 그것은 어쨌든 당신이 일반적으로 혼란을 일으킬 수 있음을 의미합니다. - 이 기능을 비활성화하면 명명 된 수퍼 유저를 통한 무차별 대입 공격의 위험이 제거됩니다. 수퍼 유저의 이름을 숨기고 숨기면 장점이 있습니다.
답변
기본적으로 postgres 사용자를 사용해야합니다.
sudo -u postgres psql postgres
답변
발생한 오류는 your-ubuntu-username이 유효한 Postgres 사용자가 아니기 때문입니다.
사용할 데이터베이스 사용자 이름을 psql에 알려야합니다.
psql -U postgres
연결할 데이터베이스를 지정해야 할 수도 있습니다.
psql -U postgres -d <dbname>
답변
“일반”사용자 (postgres 아님)로 데이터베이스에 연결할 수도 있습니다.
postgres=# \connect opensim Opensim_Tester localhost;
Password for user Opensim_Tester:
You are now connected to database "opensim" as user "Opensim_Tester" on host "localhost" at port "5432"
답변
데이터베이스 클라이언트가 TCP / IP로 연결하고 pg_hba.conf에 ident auth를 구성한 경우 identd가 설치되어 실행 중인지 확인하십시오. “localhost”에 연결하는 로컬 클라이언트 만있는 경우에도 필수입니다.
또한 요즘에는 localhost에 연결하는 클라이언트를 환영하기 위해 Postgresql에 대해 identd가 IPv6을 활성화 해야 할 수도 있습니다 .
답변
postgres 사용자 또는 우리가 만든 다른 사용자로 로그인하는 것의 주요 차이점은 postgres 사용자를 사용할 때 호스트를 -h 로 지정할 필요가 없고 대신 다른 사용자에 대해 지정할 필요가 없다는 것입니다 .
postgres 사용자로 로그인
$ psql -U postgres
다른 사용자로 생성 및 로그인
# CREATE ROLE usertest LOGIN PASSWORD 'pwtest';
# CREATE DATABASE dbtest WITH OWNER = usertest;
# SHOW port;
# \q
$ psql -h localhost -d dbtest -U usertest -p 5432
GL