PostgreSQL 또는 Postgres는 오픈 소스 범용 객체 관계 데이터베이스 관리 시스템입니다. PostgreSQL에는 복잡한 웹 응용프로그램을 만들 수 있는 많은 고급 기능이 있습니다.
이 튜토리얼에서는 Postgre를 설치하는 방법을 보여 드리겠습니다. Ubuntu 18.04에서 SQL을 사용하고 기본 데이터베이스 관리의 기본 원리를 살펴봅니다.
필수 구성 요소
이 튜토리얼을 계속하기 전에 sudo 권한을 가진 사용자로 로그인했는지 확인합니다.
Ubuntu에서 PostgreSQL 설치
이 기사를 쓸 당시, Postgre 최신판입니다. 공식 Ubuntu 리포지토리에서 사용할 수 있는 SQL은 PostgreSQL 버전 10.4입니다.
Ubuntu 서버를 PostgreSQL를 설치하고 다음 단계를 따릅니다.
01. PostgreSQL를 설치
로컬 패키지 색인을 새로 고치고 PostgreSQL 서버를 설치합니다. Postgre를 함께 사용합니다.Postgre에 몇 가지 추가 기능을 제공하는 SQL 기여 패키지입니다.SQL 데이터베이스는 다음과 같습니다.
sudo apt update
sudo apt install postgresql postgresql-contrib
02. PostgreSQL 설치 확인
설치가 완료되면 PostgreSQL 서비스가 자동으로 시작됩니다.
설치를 확인하기 위해 PostgreSQL 데이터베이스 서버에 연결하고 psql을 사용하여 서버 버전을 출력합니다.
sudo -u postgres psql -c "SELECT version();"
psql은 PostgreSQL 서버와 상호 작용할 수 있는 대화형 명령줄 유틸리티입니다.
PostgreSQL 역할 및 인증 방법
PostgreSQL은 역할 개념으로 처리되고 데이터베이스 액세스 권한입니다. 역할은 데이터베이스 사용자 또는 데이터베이스 사용자 그룹을 나타낼 수 있습니다.
PostgreSQL은 여러 인증 방법을 지원합니다. 가장 일반적으로 사용되는 항목은 다음과 같습니다.
- Trust - 이 방법을 사용하면 pg_hba.conf에 정의된 조건이 충족되는 한 역할이 암호 없이 연결할 수 있습니다.
- Password - 역할은 암호를 제공하여 연결할 수 있습니다. 암호는 scram-sha-256 md5 및 암호(지우기 텍스트)로 저장할 수 있습니다.
- Ident - 이 방법은 TCP/IP 연결에서만 지원됩니다. 사용자 이름 매핑(선택 사항)을 사용하여 클라이언트의 운영 체제 사용자 이름을 가져오는 방식으로 작동합니다.
- Peer - ID와 동일하지만 로컬 연결에서만 지원됩니다.
PostgreSQL 클라이언트 인증확인은 pg_hba.conf라는 구성 파일에 정의되어 있습니다. 로컬 연결의 경우 기본적으로 PostgreSQL 피어 인증 방법을 사용하도록 설정되었습니다.
Postgres 사용자는 Postgre를 설치할 때 자동으로 생성됩니다. 이 사용자는 PostgreSQL의 수퍼유저입니다. SQL 인스턴스와 MySQL 루트 사용자와 동일합니다.
PostgreSQL Server에 로그인하고 postgres 사용자로 먼저 전환한 다음 Postgre에 액세스할 수 있습니다. psql 유틸리티를 사용하여 SQL 프롬프트를 표시합니다.
sudo su - postgres
psql
여기서 Postgre와 상호 작용할 수 있습니다.SQL 인스턴스입니다. PostgreSQL 셸 유형을 종료하려면 다음을 수행합니다.
\q
PostgreSQL에 액세스할 수도 있습니다. sudo 명령을 사용하여 사용자를 전환하지 않고 프롬프트를 표시합니다.
sudo -u postgres psql
postgres 사용자는 일반적으로 로컬 호스트에서만 사용되며 이 사용자의 암호를 설정하지 않는 것이 좋습니다.
PostgreSQL 역할 및 데이터베이스
createuser 명령을 사용하여 명령줄에서 새 역할을 생성할 수 있습니다. CREATEROL 권한이 있는 수퍼유저 및 역할만 새 역할을 만들 수 있습니다.
다음 예에서는 johndb라는 데이터베이스를 새로 만들고 데이터베이스에 대한 권한을 부여합니다.
01. 새 PostgreSQL 역할를 만듭니다.
다음 명령은 john이라는 새 역할을 만듭니다.
sudo su - postgres -c "createuser john"
02. 새 PostgreSQL 데이터베이스로 이동합니다.
createdb 명령을 사용하여 johndb라는 새 데이터베이스를 생성합니다.
sudo su - postgres -c "createdb johndb"
03. 권한을 부여합니다.
이전 단계에서 생성한 데이터베이스에 대해 John 사용자에게 사용 권한을 부여하려면 PostgreSQL 셸은 다음과 같습니다.
sudo -u postgres psql
다음 쿼리를 실행합니다.
grant all privileges on database johndb to john;
PostgreSQL 서버에 대한 원격 액세스를 활성화
기본적으로 PostgreSQL 서버는 로컬 인터페이스 127.0.0.1에서만 수신합니다. PostgreSQL 서버에 대한 원격 액세스를 활성화하고 구성 파일 postgresql.conf를 열고 INSTANS AND 인증 섹션에서 listen_addresses = '*'를 추가합니다.
sudo vim /etc/postgresql/10/main/postgresql.conf
# /etc/postgresql/10/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
파일을 저장하고 PostgreSQL 서비스에는 다음이 포함됩니다.
sudo service postgresql restart
ss 유틸리티를 사용하여 변경 사항을 확인합니다.
ss -nlt | grep 5432
# LISTEN 0 128 0.0.0.0:5432 0.0.0.0:*
# LISTEN 0 128 [::]:5432 [::]:*
PostgreSQL 서버는 위의 출력에서 볼 수 있듯이, 다음과 같습니다. 모든 인터페이스(0.0.0.0)에서 수신 중입니다.
마지막 단계는 pg_hba.conf 파일을 편집하여 서버가 원격 연결을 허용하도록 구성하는 것입니다.
다음은 다양한 사용 사례를 보여 주는 몇 가지 예입니다.
# /etc/postgresql/10/main/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# The user jane will be able to access all databases from all locations using a md5 password
host all jane 0.0.0.0/0 md5
# The user jane will be able to access only the janedb from all locations using a md5 password
host janedb jane 0.0.0.0/0 md5
# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host all jane 192.168.1.134 trust
'SW > 리눅스' 카테고리의 다른 글
Ubuntu 18.04 : 구글 크롬 웹 브라우저를 설치하는 방법, 예제, 명령어 (1) | 2020.11.22 |
---|---|
CentOS 7 : Git 설치하는 방법, 예제, 명령어 (0) | 2020.11.21 |
Ubuntu 18.04 : OpenCV를 설치하는 방법, 예제, 명령어 (0) | 2020.11.19 |
Linux : 사용자를 나열하는 방법, 예제, 명령어 (0) | 2020.11.18 |
CentOS 7 : Go를 설치하는 방법, 예제, 명령어 (0) | 2020.11.17 |