programing

새로 설치한 후 Postgresql에 로그인하고 인증하는 방법은 무엇입니까?

starjava 2023. 5. 17. 22:17
반응형

새로 설치한 후 Postgresql에 로그인하고 인증하는 방법은 무엇입니까?

민트 우분투에 포스트그레스 8.4를 새로 설치했습니다.psql을 사용하여 postgres 및 로그인 사용자를 생성하려면 어떻게 해야 합니까?

내가 psql을 입력하면, 그것은 단지 나에게 말합니다.

psql: FATAL: Ident authentication failed for user "my-ubuntu-username"

두 가지 방법을 사용할 수 있습니다.둘 다 사용자와 데이터베이스를 작성해야 합니다.

기본적으로 psql은 사용자와 동일한 이름으로 데이터베이스에 연결됩니다.그래서 그것을 "사용자의 데이터베이스"로 만드는 관례가 있습니다.또한 사용자에게 데이터베이스가 하나만 필요한 경우에는 이 규칙을 위반할 이유가 없습니다.우리는 사용할 것입니다.mydatabase예제 데이터베이스 이름입니다.

  1. createusercreatedb를 사용하여 데이터베이스 이름을 명시할 수 있습니다.

    $ sudo -u postgres createuser -s $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    

    이를 완전히 생략하고 모든 명령어가 사용자 이름으로 기본 설정되도록 해야 합니다.

    $ sudo -u postgres createuser -s $USER
    $ createdb
    $ psql
    
  2. 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사용자의

  1. 일반적으로 OS에서 잠깁니다.아무도 다음과 같이 운영 체제에 "로그인"하면 안 됩니다.postgres인증을 받으려면 루트가 있어야 합니다.postgres.
  2. 일반적으로 암호로 보호되지 않으며 호스트 운영 체제로 위임됩니다.이것은 좋은 일입니다.이는 일반적으로 다음과 같이 로그인하는 것을 의미합니다.postgresPostgreSQL은 SQL Server의SA기본 데이터 파일에 대한 쓰기 액세스 권한이 있어야 합니다.그리고, 그것은 어쨌든 당신이 일반적으로 대혼란을 일으킬 수 있다는 것을 의미합니다.
  3. 이 옵션을 사용하지 않도록 설정하면 명명된 슈퍼 사용자를 통해 무차별적인 공격이 발생할 위험을 제거할 수 있습니다.슈퍼 유저의 이름을 숨기고 모호하게 하는 것은 장점이 있습니다.

기본적으로 postgres 사용자를 사용해야 합니다.

sudo -u postgres psql postgres

오류가 발생하는 이유는 -ubuntu-username이(가) 올바른 Postgres 사용자가 아니기 때문입니다.

사용할 데이터베이스 사용자 이름을 psql에 지정해야 합니다.

psql -U postgres

또한 연결할 데이터베이스를 지정해야 할 수도 있습니다.

psql -U postgres -d <dbname>

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

원천

또한 데이터베이스에 "일반" 사용자(포스트그레스가 아님)로 연결할 수 있습니다.

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"에 연결하는 경우에도 이는 필수 사항입니다.

또한 요즘 identd는 로컬 호스트에 연결하는 클라이언트를 환영하기 위해 Postgresql에 대해 IPv6을 사용하도록 설정해야 할 수도 있습니다.

아래의 이 명령으로 모든 사람이 Postgre에 로그인할 수 있습니다.설치 직후 SQL.*기본 데이터베이스가 사용됩니다.

psql -U postgres

위의 명령을 실행한 후 암호를 입력해야 합니다.

Password for user postgres:

언급URL : https://stackoverflow.com/questions/2172569/how-to-login-and-authenticate-to-postgresql-after-a-fresh-install

반응형