Postgre SQL 또는 Postgres는 내결함성 환경이나 복잡한 애플리케이션을 구축할 수 있는 많은 고급 기능을 갖춘 오픈 소스 범용 객체 관계형 데이터베이스 관리 시스템입니다.
이 가이드에서는 CentOS 8에 Postgre SQL 데이터베이스 서버를 설치하는 방법에 대해 설명합니다. 설치할 버전을 선택하기 전에 응용 프로그램이 이를 지원하는지 확인하십시오.
또한 Postgre SQL 데이터베이스 관리의 기본 사항에 대해서도 알아봅니다.
필수 조건
패키지를 설치하려면 루트 또는 sudo 권한이 있는 사용자로 로그인해야 합니다.
CentOS에 Postgre SQL을 설치
이 문서를 작성할 당시 표준 CentOS 리포지토리에서 설치할 수 있는 Postgre SQL Server는 버전 9.6과 10.0의 두 가지 버전이 있습니다.
사용 가능한 Postgre SQL 모듈 스트림을 나열하려면 다음을 입력합니다.
dnf module list postgresql
출력 결과 Postgre SQL 모듈은 두 개의 스트림으로 사용할 수 있습니다. 각 스트림에는 서버와 클라이언트의 두 가지 프로파일이 있습니다. 프로파일 서버가 있는 스트림 10이 기본 스트림입니다.
# CentOS-8 - AppStream
# Name Stream Profiles Summary
# postgresql 10 [d] client, server [d] PostgreSQL server and client module
# postgresql 9.6 client, server [d] PostgreSQL server and client module
1. 기본 스트림을 설치하려면 Postgre SQL Server 버전 10.0을 입력합니다.
sudo dnf install @postgresql:10
2. Postgre SQL Server 버전 9.6을 설치하려면 다음을 입력합니다.
sudo dnf install @postgresql:9.6
Postgre SQL 데이터베이스 시스템에 대한 몇 가지 추가 기능을 제공하는 기여 패키지를 설치할 수도 있습니다.
sudo dnf install postgresql-contrib
설치가 완료되면 다음 명령으로 Postgre SQL 데이터베이스를 초기화합니다.
sudo postgresql-setup initdb
# Initializing database ... OK
Postgre SQL 서비스를 시작하고 부팅 시 시작하도록 설정합니다.
sudo systemctl enable --now postgresql
psql 도구를 사용하여 Postgre SQL 데이터베이스 서버에 연결하여 설치를 확인하고 해당 버전을 인쇄합니다.
sudo -u postgres psql -c "SELECT version();"
# PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit
Postgre SQL 역할 및 인증 방법
Postgre SQL은 역할 개념을 사용하여 데이터베이스 액세스 권한을 처리합니다. 역할은 데이터베이스 사용자 또는 데이터베이스 사용자 그룹을 나타낼 수 있습니다.
Postgre SQL은 여러 인증 방법을 지원합니다. 가장 일반적으로 사용되는 방법은 다음과 같습니다.
• TRUST - pg_hba.conf에 정의된 조건이 충족되면 역할은 암호 없이 연결할 수 있습니다.
• PASSWORD - 역할은 암호를 제공하여 연결할 수 있습니다. 암호는 스크램-sha-256, md5 및 암호(클리어 텍스트)로 저장할 수 있습니다.
• IDENT - TCP/IP 연결에서만 지원됩니다. 사용자 이름 매핑 옵션과 함께 클라이언트의 운영 체제 사용자 이름을 가져오는 방식으로 작동합니다.
•PEER - ID와 동일하지만 로컬 연결에서만 지원됩니다.
Postgre SQL 클라이언트 인증은 pg_hba.conf라는 구성 파일에 정의됩니다. 기본적으로 로컬 연결의 경우 Postgre SQL은 피어 인증 방법을 사용하도록 설정됩니다.
Postgres 사용자는 Postgre SQL 서버를 설치할 때 자동으로 생성됩니다. 이 사용자는 Postgre SQL 인스턴스의 슈퍼 사용자입니다. MySQL 루트 사용자와 동일합니다.
Postgres 사용자로 Postgre SQL 서버에 로그인하려면 먼저 사용자로 전환한 다음 psql 유틸리티를 사용하여 Postgre SQL 프롬프트에 액세스합니다.
sudo su - postgres
psql
여기서 Postgre SQL 인스턴스와 상호 작용할 수 있습니다. Postgre SQL 셸을 종료하려면 다음을 입력합니다.
\q
또한 sudo 명령을 사용하여 사용자를 전환하지 않고도 Postgre SQL 프롬프트에 액세스할 수 있습니다.
sudo -u postgres psql
일반적으로 postgres 사용자는 localhost에서만 사용됩니다.
Postgre SQL 역할 및 데이터베이스를 만드는 중입니다.
CREATEROLE 권한이 있는 슈퍼유저 및 역할만 새 역할을 만들 수 있습니다.
다음 예에서는 john이라는 새 역할, johndb 데이터베이스를 만들고 데이터베이스에 대한 권한을 부여합니다.
1. 먼저 Postgre SQL 셸에 연결합니다.
sudo -u postgres psql
2. 다음 명령을 사용하여 새 Postgre SQL 역할을 만듭니다.
CREATE ROLE john;
3. 새 데이터베이스를 만듭니다.
CREATE DATABASE johndb;
4. 다음 쿼리를 실행하여 데이터베이스에서 사용자에게 권한을 부여합니다.
GRANT ALL PRIVILEGES ON DATABASE johndb TO john;
Postgre SQL 서버에 대한 원격 액세스를 사용하도록 설정
기본적으로 Postgre SQL 서버는 로컬 인터페이스 127.0.0.1에서만 수신 대기합니다.
Postgre SQL 서버에 대한 원격 액세스를 활성화하려면 구성 파일을 엽니다.
sudo nano /var/lib/pgsql/data/postgresql.conf
아래로 스크롤하여 연결 및 인증 섹션으로 이동하고 다음 줄을 추가/편집합니다.
# /var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
파일을 저장하고 다음을 사용하여 Postgre SQL 서비스를 다시 시작합니다.
sudo systemctl restart postgresql
ss 유틸리티를 사용하여 변경 내용을 확인합니다.
ss -nlt | grep 5432
# LISTEN 0 128 0.0.0.0:5432 0.0.0.0:*
# LISTEN 0 128 [::]:5432 [::]:*
위의 출력은 Postgre SQL 서버가 모든 인터페이스의 기본 포트(0.0.0)에서 수신 중임을 나타냅니다.
마지막 단계는 pg_hba.conf 파일을 편집하여 원격 연결을 허용하도록 서버를 구성하는 것입니다.
다음은 다양한 사용 사례를 보여주는 몇 가지 예입니다.
# /var/lib/pgsql/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# The user jane can access all databases from all locations using an md5 password
host all jane 0.0.0.0/0 md5
# The user jane can access only the janedb database from all locations using an 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
CentOS 8은 9.6과 10.0의 두 가지 Postgre SQL 버전을 제공합니다.
이 항목에 대한 자세한 내용은 Postgre SQL 설명서를 참조하십시오.
'SW > 리눅스' 카테고리의 다른 글
Linux : CentOS 8 : Go 설치 방법, 예제, 명령어 (0) | 2022.04.27 |
---|---|
Docker : 컨테이너 나열 방법, 예제, 명령어 (1) | 2022.04.26 |
Linux : Debian 10 : PHP 설치 방법, 예제, 명령어 (0) | 2022.04.24 |
Linux : W 명령어, 사용 방법, 예제 (0) | 2022.04.23 |
Linux : CentOS 8 : Webmin 설치 방법, 예제, 명령어 (0) | 2022.04.22 |