PostgreSQL 또는 Postgres는 내결함성 환경이나 복잡한 애플리케이션을 구축할 수 있는 많은 고급 기능을 갖춘 오픈 소스 범용 객체 관계형 데이터베이스 관리 시스템입니다.
이 가이드에서는 PostgreSQL를 설치하는 방법을 설명합니다.Ubuntu 20.04의 SQL 데이터베이스 서버에서 PostgreSQL 데이터베이스 관리의 기본 사항을 살펴봅니다.
필수 구성 요소
패키지를 설치하려면 루트 또는 sudo 권한이 있는 사용자로 로그인해야 합니다.
PostgreSQL on Ubuntu 설치
이 기사를 쓸 당시 PostgreSQL의 최신 버전은 다음과 같습니다. 공식 Ubuntu 리포지토리에서 사용할 수 있는 SQL은 PostgreSQL 버전 10.4입니다.
다음 명령을 실행하여 PostgreSQL를 설치합니다. Ubuntu의 SQL Server는 다음과 같습니다.
sudo apt update
sudo apt install postgresql postgresql-contrib
또한 PostgreSQL도 설치하고 있습니다. 몇 가지 추가 기능을 제공하는 PostgreSQL 기여 패키지입니다.
설치가 완료되면 PostgreSQL 서비스가 자동으로 시작됩니다. psql 도구를 사용하여 PostgreSQL 데이터베이스 서버를 인쇄하고 연결하여 설치를 확인합니다.
sudo -u postgres psql -c "SELECT version();"
# PostgreSQL 12.2 (Ubuntu 12.2-4) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3
PostgreSQL이 설치되었으며 SQL을 사용할 수 있습니다.
PostgreSQL 역할 및 인증 방법
PostgreSQL 내의 데이터베이스 액세스 권한입니다. 역할의 개념으로 처리됩니다. 역할은 데이터베이스 사용자 또는 데이터베이스 사용자 그룹을 나타낼 수 있습니다.
PostgreSQL은 여러 인증 방법을 지원합니다. 가장 일반적으로 사용되는 방법은 다음과 같습니다.
신뢰 - pg_hba.conf에 정의된 조건이 충족되는 한 역할은 암호 없이 연결할 수 있습니다.
암호 - 역할은 암호를 제공하여 연결할 수 있습니다. 암호는 scram-sha-256, md5 및 암호(클리어 텍스트)로 저장할 수 있습니다.
식별 - TCP/IP 연결에서만 지원됩니다. 선택적 사용자 이름 매핑과 함께 클라이언트의 운영 체제 사용자 이름을 가져오는 방식으로 작동합니다.
피어 - ID와 동일하지만 로컬 연결에서만 지원됩니다.
PostgreSQL 클라이언트 인증은 pg_hba.conf라는 구성 파일에 정의되어 있습니다. 기본적으로 PostgreSQL이 로컬 연결에 피어 인증 방법을 사용하고 있습니다.
PostgreSQL 사용자는 PostgreSQL를 설치할 때 자동으로 생성됩니다. 이 사용자는 PostgreSQL 인스턴스로 MySQL 루트 사용자와 동일한 수퍼 유저입니다.
PostgreSQL Server를 postgres 사용자로 전환한 다음 PostgreSQL에 액세스합니다. psql 유틸리티를 사용하여 SQL 프롬프트를 표시합니다.
sudo su - postgres
psql
PostgreSQL 인스턴스와 상호 작용할 수 있습니다. PostgreSQL 셸 유형를 종료하려면 다음과 같이 하십시오.
\q
PostgreSQL에 액세스하는 또 다른 방법입니다. 사용자를 전환하지 않은 프롬프트는 sudo 명령을 사용합니다.
sudo -u postgres psql
일반적으로 로컬 호스트에서만 데이터베이스 서버에 postgres로 로그인해야 합니다.
PostgreSQL 역할 및 데이터베이스
CREATEROLE 권한이 있는 슈퍼 유저 및 역할만 새 역할을 생성할 수 있습니다.
다음 예에서는 johndb라는 새 역할을 생성하고 데이터베이스에 대한 권한을 부여하는 방법을 보여 줍니다.
새 PostgreSQL 역할 및 데이터베이스 생성
sudo su - postgres -c "createuser john"
새 PostgreSQL 데이터베이스를 만듭니다.
sudo su - postgres -c "createdb johndb"
데이터베이스의 사용자에게 사용 권한을 부여하려면 PostgreSQL 셸에 연결하십시오.
sudo -u postgres psql
다음 쿼리를 실행합니다.
GRANT ALL PRIVILEGES ON DATABASE johndb TO john;
PostgreSQL 서버에 대한 원격 액세스를 활성화
기본적으로 PostgreSQL 서버는 로컬 인터페이스(127.0.0.1)에서만 수신 대기합니다.
PostgreSQL Server에서 구성 파일 postgresql.conf를 열고 CONNECTIONS AND AUTHENTITION 섹션에서 listen_adress = '*'을(를) 입력하십시오.
# /etc/postgresql/12/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
파일을 저장하고 PostgreSQL 서비스를 다시 시작합니다.
sudo service postgresql restart
SS 유틸리티를 사용하여 변경 사항을 확인합니다.
출력에 PostgreSQL 서버가 모든 인터페이스(0.0.0.0)에서 수신 대기 중입니다.
ss -nlt | grep 5432
# LISTEN 0 244 0.0.0.0:5432 0.0.0.0:*
# LISTEN 0 244 [::]:5432 [::]:*
다음 단계는 pg_hba.conf 파일을 편집하여 서버가 원격 연결을 허용하도록 구성하는 것입니다.
다음은 다양한 사용 사례를 보여주는 몇 가지 예입니다.
# /etc/postgresql/12/main/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# The user jane can access all databases from all locations using md5 password
host all jane 0.0.0.0/0 md5
# The user jane can access only the janedb from all locations using md5 password
host janedb jane 0.0.0.0/0 md5
# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host all jane 192.168.1.134 trust
마지막 단계는 방화벽에서 포트 5432를 여는 것입니다.
UFW를 사용하여 방화벽을 관리하고 192.168.1.0/24 서브넷에서 액세스를 허용하려는 경우 다음 명령을 실행합니다.
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432
방화벽이 신뢰할 수 있는 IP 범위의 연결만 허용하도록 구성되어 있는지 확인하십시오.
PostgreSQL를 Ubuntu 20.04 서버에 설치하고 구성하는 방법을 보여드렸습니다. PostgreSQL 12 설명서에서 이 항목에 대한 자세한 내용을 참조하십시오.
참조
https://linuxize.com/post/how-to-install-postgresql-on-ubuntu-20-04/
'SW > 리눅스' 카테고리의 다른 글
Linux : Ubuntu 20.04 : Xrdp Server 설치 방법, 예제, 명령어 (원격 데스크톱) (0) | 2022.09.23 |
---|---|
Linux : Ubuntu 20.04 : Docker 설치 방법, 예제, 명령어 (0) | 2022.09.22 |
Linux : 디스크 파티션 생성 방법 : Fdisk 명령어, 예제, 사용 방법 (1) | 2022.09.20 |
Linux : Ubuntu 20.04 : MariaDB 설치, 방법, 예제, 명령어 (0) | 2022.09.19 |
Linux : Ubuntu 20.04 : Webmin 설치 방법, 예제, 명령어 (0) | 2022.09.18 |