PostgreSQL에 로그인 및 인증
이 문서에서는 특정 PostgreSQL 데이터베이스에 액세스하기 위해 로그인하고 인증을 받는 방법에 대해 설명합니다.
PostgreSQL에서 데이터베이스에 연결
PostgreSQL 데이터베이스에 연결할 때 연결할 데이터베이스, 서버의 호스트 주소, 포트 번호 및 사용자 이름을 만들어야 합니다. 다음 명령줄 인수를 사용하여 매개 변수를 제공할 수 있습니다.
david@david-HP-ProBook-6470b:~$ psql -h localhost -U postgres -p 5432
인수가 생략될 때 사용되는 기본 연결 매개변수가 있습니다. 사용자 이름과 데이터베이스를 생략하면 서버는 운영 체제의 사용자 이름을 사용합니다.
선택한 데이터베이스도 운영 체제와 동일한 이름을 가지며 이러한 매개변수가 존재하지 않는 경우 다음 오류가 발생할 수 있습니다.
david@david-HP-ProBook-6470b:~$ psql
psql: error: FATAL: role "david" does not exist
위의 예에서 서버는 존재하지 않는 사용자 이름 david
를 사용하여 david
라는 데이터베이스에 액세스하려고 시도합니다.
PostgreSQL에서 createuser
및 createdb
사용
기본적으로 PostgreSQL 서버에는 사용자 이름이 postgres
인 사용자와 postgres
라는 데이터베이스가 있습니다. 다음 명령을 사용하여 운영 체제와 동일한 이름으로 데이터베이스 사용자를 생성합니다.
david@david-HP-ProBook-6470b:~$ sudo -u postgres createuser -s $USER
다음으로 새 사용자 david
에 대해 createdb
명령을 사용하여 데이터베이스를 만듭니다.
david@david-HP-ProBook-6470b:~$ createdb employee_db
지금 PSQL을 사용하여 로그인할 수 있는지 확인하려면 연결할 데이터베이스를 지정해야 합니다.
david@david-HP-ProBook-6470b:~$ psql -d employee_db
출력:
psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
Type "help" for help.
employee_db=#
데이터베이스가 기본적으로 운영 체제(예: 제 경우에는 david
)로 설정되기를 원한다고 가정합니다. 데이터베이스 이름을 묻는 -d
인수를 사용하지 않고 createdb
명령을 사용하십시오.
david@david-HP-ProBook-6470b:~$ createdb
매개변수를 지정하지 않고 PSQL을 사용하여 PostgreSQL 서버에 로그인을 시도하면 로그인에 사용되는 기본 사용자 및 데이터베이스는 david
및 david
입니다.
david@david-HP-ProBook-6470b:~$ psql
출력:
psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
Type "help" for help.
david=#
SQL 관리 명령을 사용하고 TCP를 통한 암호로 연결
SQL에는 PostgreSQL 데이터베이스에서 사용자와 해당 데이터베이스를 생성하는 데 활용할 수 있는 명령이 있습니다. 다음 명령은 PostgreSQL 서버에 수퍼유저로 로그인하는 것입니다.
david@david-HP-ProBook-6470b:~$ sudo -u postgres psql postgres
운영 체제의 비밀번호를 입력하고 비밀번호가 프롬프트되면 Enter를 누르십시오.
[sudo] password for david:
출력:
psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
Type "help" for help.
postgres=#
PSQL 셸에서 사용자와 데이터베이스를 생성하고 사용자를 생성된 데이터베이스와 연결합니다.
postgres=# CREATE ROLE john LOGIN PASSWORD 'john';
CREATE ROLE
postgres=# CREATE DATABASE products_db WITH OWNER = john;
CREATE DATABASE
postgres=#
마지막으로 TCP를 통한 PSQL 명령을 사용하는 로그인은 호스트, 데이터베이스, 사용자 및 포트 번호를 지정합니다. PostgreSQL 서버의 기본 포트 번호는 5432
입니다.
다음 명령은 TCP를 통해 새 사용자로 로그인할 수 있는지 확인합니다.
david@david-HP-ProBook-6470b:~$ psql -h localhost -d products_db -U john -p 5432
암호를 입력하라는 메시지가 표시되면 사용자 이름과 동일한 이름인 john
으로 설정한 암호를 입력하고 키보드의 Enter 버튼을 누릅니다.
Password for user john:
출력:
psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
products_db=>
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub