[ë¤ìë³´ë 맥ìë]ì¤í°ë¸ì¡ì¤ ì(å¼) í리ì í ì´ì ìê³ëª
차례:
Postgres라고도하는 PostgreSQL은 오픈 소스 범용 객체 관계형 데이터베이스 관리 시스템입니다. PostgreSQL에는 온라인 백업, 특정 시점 복구, 중첩 트랜잭션, SQL 및 JSON 쿼리, MVCC (Multi-version Concurrency Control), 비동기 복제 등과 같은 많은 고급 기능이 있습니다.
이 튜토리얼에서는 Debian 9에 PostgreSQL을 설치하고 기본 데이터베이스 관리의 기본 사항을 살펴 보는 방법을 보여줍니다.
전제 조건
이 학습서를 진행하기 전에 로그인 한 사용자에게 sudo 권한이 있는지 확인하십시오.
PostgreSQL 설치
이 기사를 작성할 당시 데비안 리포지토리에서 사용 가능한 최신 PostgreSQL 버전은 PostgreSQL 버전 9.6입니다.
데비안 서버에 PostgreSQL을 설치하려면 다음 단계를 완료하십시오.
-
로컬 패키지 색인을 업데이트하여 시작하십시오.
sudo apt update
PostgreSQL 데이터베이스에 대한 추가 기능을 제공하는 PostgreSQL 서버 및 PostgreSQL contrib 패키지를 설치하십시오.
sudo apt install postgresql postgresql-contrib
설치가 완료되면 PostgreSQL 서비스가 자동으로 시작됩니다. 설치를 확인하기 위해
psql
유틸리티를 사용하여 PostgreSQL 데이터베이스 서버에 연결하고 서버 버전을 인쇄합니다.sudo -u postgres psql -c "SELECT version();"
결과는 다음과 같습니다.
version ----------------------------------------------------------------------------------------------------------- PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit (1 row)
PostgreSQL 역할 및 인증 방법
PostgreSQL은 역할 개념을 사용하여 데이터베이스 액세스 권한을 처리합니다. 역할은 데이터베이스 사용자 또는 데이터베이스 사용자 그룹을 나타낼 수 있습니다.
PostgreSQL은 다양한 인증 방법을 지원합니다. 가장 일반적으로 사용되는 방법은 다음과 같습니다.
- 신뢰-이 방법을 사용하면
pg_hba.conf
정의 된 기준이 충족되는 한 암호없이 역할을 연결할 수 있습니다. 암호-역할은 암호를 제공하여 연결할 수 있습니다. 비밀번호는scram-sha-256
md5
및password
(일반 텍스트)로 저장 될 수 있습니다.scram-sha-256
이 방법은 TCP / IP 연결에서만 지원됩니다. 선택적 사용자 이름 매핑을 사용하여 클라이언트 운영 체제 사용자 이름을 가져와 작동합니다. 피어-ID와 동일하지만 로컬 연결에서만 지원됩니다.
PostgreSQL 클라이언트 인증은
pg_hba.conf
구성 파일에 정의되어 있습니다. 로컬 연결의 경우 기본적으로 PostgreSQL은 피어 인증 방법을 사용하도록 설정되어 있습니다.
postgres
사용자는 PostgreSQL을 설치할 때 자동으로 생성됩니다. 이 사용자는 PostgreSQL 인스턴스의 수퍼 유저이며 MySQL 루트 사용자와 동일합니다.
Postgres 사용자로 PostgreSQL 서버에 로그인하려면 먼저 사용자 postgres로 전환 한 다음
psql
유틸리티를 사용하여 PostgreSQL 프롬프트에 액세스 할 수 있습니다.
sudo su - postgres
psql
여기에서 PostgreSQL 인스턴스와 상호 작용할 수 있습니다. PostgreSQL 셸을 종료하려면 다음을 입력하십시오.
\q
sudo
명령을 사용하여 사용자를 전환하지 않고도 PostgreSQL 프롬프트에 액세스 할 수 있습니다.
sudo -u postgres psql
postgres
사용자는 일반적으로 로컬 호스트에서만 사용
postgres
사용자의 비밀번호를 설정하지 않는 것이 좋습니다.
PostgreSQL 역할 및 데이터베이스 생성
createuser
명령을 사용하여 명령 행에서 새 역할을 작성할 수 있습니다.
CREATEROLE
권한이있는 수퍼 유저와 역할 만 새 역할을 만들 수 있습니다.
다음 예에서는
john
이라는 데이터베이스를
johndb
라는 데이터베이스로
johndb
데이터베이스에 대한 권한을 부여합니다.
-
새로운 PostgreSQL 역할 생성
다음 명령은 john이라는 새 역할을 만듭니다.
sudo su - postgres -c "createuser john"
새로운 PostgreSQL 데이터베이스 생성
createdb
명령을 사용하여 johndb라는 새 데이터베이스를 작성하십시오.sudo su - postgres -c "createdb johndb"
권한 부여
이전 단계에서 생성 한 데이터베이스에서
john
사용자에게 권한을 부여하려면 PostgreSQL 셸에 연결하십시오.sudo -u postgres psql
다음 쿼리를 실행하십시오.
grant all privileges on database johndb to john;
PostgreSQL 서버에 대한 원격 액세스 활성화
기본적으로 PostgreSQL 서버는 로컬 인터페이스
127.0.0.1
에서만 청취합니다. PostgreSQL 서버에 대한 원격 액세스를 활성화하려면 구성 파일
postgresql.conf
열고
CONNECTIONS AND AUTHENTICATION
섹션에
listen_addresses = '*'
를 추가하십시오.
sudo vim /etc/postgresql/9.6/main/postgresql.conf
/etc/postgresql/9.6/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/9.6/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
결론
데비안 9 서버에서 PostgreSQL을 설치하고 구성하는 방법을 배웠습니다. 이 주제에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오.
데비안 postgresql 데이터베이스centos 7에 postgresql을 설치하는 방법
PostgreSQL 또는 Postgres는 오픈 소스 범용 객체 관계형 데이터베이스 관리 시스템입니다. 이 자습서에서는 CentOS 7 시스템에 PostgreSQL을 설치하는 방법에 대한 두 가지 방법을 보여줍니다.
centos 8에 postgresql을 설치하는 방법
이 안내서에서는 CentOS 8에 PostgreSQL 데이터베이스 서버를 설치하는 방법에 대해 설명합니다. 또한 PostgreSQL 데이터베이스 관리의 기본 사항도 살펴 봅니다.
데비안 10에 postgresql을 설치하는 방법
이 튜토리얼은 데비안 10에 PostgreSQL 데이터베이스 서버를 설치하는 단계를 안내합니다. Postgres (Postgres라고도 함)는 오픈 소스 범용 객체 관계형 데이터베이스 관리 시스템입니다.