웹사이트 검색

Debian 10에 PostgreSQL 데이터베이스를 설치하는 방법


PostgreSQL(Postgres라고도 함)은 모든 주요 운영 체제에서 실행되는 입증된 아키텍처를 갖춘 가장 진보된 오픈 소스 범용 및 객체 관계형 데이터베이스 시스템입니다. 놀라운 데이터 무결성을 제공하고 강력한 추가 기능을 지원하는 고성능, 안정적이고 확장 가능한 데이터베이스 시스템입니다.

중요한 것은 PostgreSQL을 사용하면 데이터베이스를 다시 컴파일하지 않고도 자신만의 데이터 유형을 정의하고, 맞춤 함수를 추가하고, C/C++, Java 등과 같은 다양한 프로그래밍 언어로 코드를 작성할 수도 있습니다.

PostgreSQL은 Apple, Fujitsu, Red Hat, Cisco, Juniper Network 등 유명 기술 기업에서 사용되고 있습니다.

이 문서에서는 Debian 10에서 PostgreSQL 데이터베이스 서버를 설치, 보안 및 구성하는 방법을 보여줍니다.

요구 사항:

  1. Debian 10(Buster) 최소 서버 설치

Debian 10에 PostgreSQL 서버 설치

PostgreSQL 데이터베이스 서버를 설치하려면 PostgreSQL 11 서버와 클라이언트를 설치하는 기본 APT 패키지 관리자를 사용하세요.

apt install postgresql-11 postgresql-client-11

다른 데몬과 마찬가지로 Debian에서는 다음 스크린샷과 같이 패키지 설치가 완료된 직후 Postgres 데이터베이스가 초기화됩니다.

Postgres 데이터베이스가 실제로 초기화되었는지 확인하려면 PostgreSQL 서버의 연결 상태를 확인하는 pg_isready 유틸리티를 다음과 같이 사용할 수 있습니다.

pg_isready 

게다가 systemd에서는 Postgres 서비스도 자동으로 시작되어 시스템 부팅 시 시작되도록 활성화됩니다. 서비스가 제대로 실행되고 있는지 확인하려면 다음 명령을 실행하세요.

systemctl status postgresql

다음은 systemd에서 Postgres 서비스를 관리하는 데 유용한 다른 systemctl 명령입니다.

systemctl start postgresql
systemctl restart postgresql
systemctl stop postgresql
systemctl reload postgresql 		#this reloads the service configuration

PostgreSQL 데이터베이스 보안 및 구성

기본적으로 Postgres는 역할 개념을 사용하여 데이터베이스 액세스 권한을 관리하며 데이터베이스 역할은 운영 체제 사용자와 개념적으로 완전히 분리되어 있습니다. 역할은 사용자일 수도 있고 그룹일 수도 있으며, 로그인 권한을 가진 역할을 사용자라고 합니다.

새로 초기화된 시스템에는 항상 postgres라는 사전 정의된 역할이 하나 포함되어 있으며 psql에 액세스하는 데 사용되는 postgres라는 운영 체제 사용자 계정과 이름이 동일합니다. (Postgres 셸) 및 기타 데이터베이스 프로그램.

Postgres 시스템 사용자 계정은 비밀번호를 사용하여 보호되지 않습니다. 이를 보호하려면 passwd 유틸리티를 사용하여 비밀번호를 생성할 수 있습니다.

passwd postgres

또한 Postgres 역할(또는 원하는 경우 관리 데이터베이스 사용자)은 기본적으로 보호되지 않습니다. 또한 비밀번호로 보안을 설정해야 합니다. 이제 표시된 대로 postgres 시스템 사용자 계정과 postgres 역할로 전환합니다(강력하고 안전한 비밀번호를 설정해야 함).

su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'securepass_here';"

그런 다음 postgres 계정을 종료하여 가이드를 계속 진행하세요.

클라이언트 인증 구성

기본 Postgres 구성 파일은 /etc/postgresql/11/main/postgresql.conf에 있습니다. 이 파일 외에도 Postgres는 클라이언트 인증을 제어하는 수동으로 편집된 두 개의 다른 구성 파일을 사용합니다.

클라이언트 인증은 /etc/postgresql/11/main/pg_hba.conf 구성 파일에 의해 제어됩니다. Postgres는 비밀번호 기반 인증을 포함하여 다양한 클라이언트 인증 방법을 제공합니다. 클라이언트 연결은 클라이언트 호스트 주소, 데이터베이스 및 사용자를 기반으로 인증됩니다.

비밀번호 기반 인증을 사용하기로 선택한 경우 연결을 통해 비밀번호가 전송되는 방식을 제외하고 유사하게 작동하는 md5 또는 비밀번호 방법 중 하나를 구현할 수 있습니다. , 즉 각각 MD5 해시 및 일반 텍스트입니다.

md5 비밀번호 인증을 사용하면 해커의 비밀번호 스니핑을 방지하고 비밀번호가 일반 텍스트로 서버에 저장되는 것을 방지할 수 있습니다. 비밀번호 방법은 연결이 SSL 암호화로 보호되는 경우에만 안전하게 사용할 수 있습니다.

이 가이드에서는 클라이언트 인증을 위해 md5 비밀번호 인증을 구성하는 방법을 보여줍니다.

vim /etc/postgresql/11/main/pg_hba.conf 

다음 줄을 찾아 스크린샷과 같이 인증 방법을 md5로 변경하세요.

local   all             all                                     md5

파일의 변경 사항을 저장하고 종료합니다. 그런 다음 다음과 같이 Postgres 서비스를 다시 시작하여 최근 변경 사항을 적용합니다.

systemctl restart postgresql

PostgreSQL에서 새 데이터베이스 및 데이터베이스 역할/사용자 생성

이 마지막 섹션에서는 새 데이터베이스 사용자와 이를 관리하기 위한 데이터베이스 역할을 생성하는 방법을 보여줍니다. 먼저 postgres 계정으로 전환하고 다음과 같이 Postgres 셸을 엽니다.

su - postgres
psql

“test_db ”라는 데이터베이스를 생성하려면 다음 SQL 명령을 실행하세요.

postgres=# CREATE DATABASE test_db;

그런 다음, 다음과 같이 새 데이터베이스를 관리할 데이터베이스 사용자(로그인 권한이 있는 역할)를 생성합니다.

postgres=#CREATE USER test_user PASSWORD ‘securep@ss_here’;     #assumes login function by default

test_user 사용자로 test_db에 연결하려면 다음 명령을 실행하세요.

 
psql -d  test_db  -U test_user

자세한 내용은 PostgreSQL 11 설명서를 참조하세요.

결론

지금은 그렇다면요! 이 가이드에서는 Debian 10에서 PostgreSQL 데이터베이스 서버를 설치, 보안 및 구성하는 방법을 보여주었습니다. 공유하고 싶은 질문이나 생각이 있나요? 아래의 의견 양식을 사용하여 우리에게 연락하십시오.