4.3.12. PostgreSQL 보안
PostgreSQL 은 DBMS(Object-Relational database Management System)입니다. Red Hat Enterprise Linux 7에서
postgresql-server
패키지는 PostgreSQL 을 제공합니다. 설치되지 않은 경우 root 사용자로 다음 명령을 입력하여 설치합니다.
~]# yum install postgresql-server
PostgreSQL 을 사용하려면 먼저 디스크에서 데이터베이스 스토리지 영역을 초기화해야 합니다. 이를 데이터베이스 클러스터라고 합니다. 데이터베이스 클러스터를 초기화하려면 PostgreSQL 과 함께 설치된 initdb 명령을 사용합니다. 데이터베이스 클러스터의 원하는 파일 시스템 위치는
-D
옵션으로 표시됩니다. 예를 들어 다음과 같습니다.
~]$ initdb -D /home/postgresql/db1
initdb 명령이 아직 없는 경우 지정한 디렉터리를 생성하려고 합니다. 이 예에서는 /home/postgresql/db1 이라는 이름을 사용합니다. /home/postgresql/db1 디렉터리에는 데이터베이스에 저장된 모든 데이터와 클라이언트 인증 구성 파일이 포함되어 있습니다.
~]$ cat pg_hba.conf
# PostgreSQL Client Authentication Configuration File
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
#
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
pg_hba.conf
파일의 다음 줄을 사용하면 인증된 모든 로컬 사용자가 사용자 이름이 있는 데이터베이스에 액세스할 수 있습니다.
local all all trust
이 문제는 데이터베이스 사용자를 생성하고 로컬 사용자가 없는 계층화된 애플리케이션을 사용할 때 문제가 될 수 있습니다. 시스템의 모든 사용자 이름을 명시적으로 제어하지 않으려면
pg_hba.conf
파일에서 이 행을 제거합니다.