8.6. 인증된 로컬 사용자로 액세스를 제한하여 PostgreSQL 보안
PostgreSQL은 개체 관계형 데이터베이스 관리 시스템(DBMS)입니다. Red Hat Enterprise Linux에서 PostgreSQL은 postgresql-server 패키지에서 제공합니다.
클라이언트 인증을 구성하여 공격 위험을 줄일 수 있습니다. 데이터베이스 클러스터의 데이터 디렉터리에 저장된 pg_hba.conf 구성 파일은 클라이언트 인증을 제어합니다. 호스트 기반 인증을 위해 PostgreSQL을 구성하는 절차를 따르십시오.
프로세스
PostgreSQL을 설치합니다.
dnf install postgresql-server
# dnf install postgresql-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 옵션 중 하나를 사용하여 데이터베이스 스토리지 영역을 초기화합니다.
initdb유틸리티 사용:initdb -D /home/postgresql/db1/
$ initdb -D /home/postgresql/db1/Copy to Clipboard Copied! Toggle word wrap Toggle overflow initdb명령은-D옵션을 사용하여 지정하는 디렉터리를 생성합니다(예:/home/postgresql/db1/). 그런 다음 이 디렉터리에는 데이터베이스에 저장된 모든 데이터와 클라이언트 인증 구성 파일이 포함됩니다.postgresql-setup스크립트 사용:postgresql-setup --initdb
$ postgresql-setup --initdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 스크립트는
/var/lib/pgsql/data/디렉터리를 사용합니다. 이 스크립트는 시스템 관리자가 기본 데이터베이스 클러스터 관리를 지원합니다.
인증된 로컬 사용자가 사용자 이름으로 모든 데이터베이스에 액세스할 수 있도록 하려면
pg_hba.conf파일에서 다음 행을 수정합니다.local all all trust
local all all trustCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이는 데이터베이스 사용자를 생성하고 로컬 사용자가 없는 계층화된 애플리케이션을 사용할 때 문제가 될 수 있습니다. 시스템의 모든 사용자 이름을 명시적으로 제어하지 않으려면
pg_hba.conf파일에서로컬행 항목을 제거합니다.데이터베이스를 다시 시작하여 변경 사항을 적용합니다.
systemctl restart postgresql
# systemctl restart postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 명령은 데이터베이스를 업데이트하고 구성 파일의 구문도 확인합니다.