RHEL8にPostgreSQLをインストールする方法


Postgresとしても知られるPostgreSQLは、SQL言語を使用および拡張する強力なオープンソースのオブジェクトリレーショナルデータベース管理システムであり、最も複雑なデータワークロードを安全に保持およびスケーリングする多数の機能と組み合わされています。

PostgreSQLには、プログラマーがアプリケーションを開発し、管理者がデータの整合性を保護し、フォールトトレラントな環境を作成し、データセットの大小に関係なくデータの管理を支援することを目的とした多数の機能が付属しています。

無料でオープンソースであることに加えて、PostgreSQLは非常に拡張性があります。たとえば、データベースを再コンパイルせずに、独自のデータ型を追加したり、カスタム関数を開発したり、さまざまなプログラミング言語からコードを記述したりすることができます。

  1. RHEL 8 with Minimal Installation
  2. RHEL 8 with RedHat Subscription Enabled
  3. RHEL 8 with Static IP Address

この記事では、RHEL 8 LinuxディストリビューションにPostgreSQLデータベース管理システムをインストール、保護、および構成する方法について説明します。

PostgreSQLパッケージのインストール

1.PostgreSQLはRHEL8のデフォルトリポジトリに含まれており、次のdnfコマンドを使用してインストールできます。これにより、PostgreSQLサーバー10、ライブラリ、およびクライアントバイナリがインストールされます。

# dnf install @postgresql

注:RHEL8システムにPostgreSQL11パッケージをインストールするには、PostgreSQL RPMリポジトリをインストールする必要があります。このリポジトリには、PostgreSQLサーバー、クライアントバイナリ、サードパーティのアドオンなど、さまざまなパッケージが含まれています。

# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# dnf update
# dnf install postgresql11-server postgresql11  postgresql11-contrib

PostgreSQLデータベースを初期化します

2. PostgreSQLパッケージをインストールしたら、次のステップは、次のように/ usr/bin/postgresql-setupユーティリティを使用して新しいPostgreSQLデータベースクラスターを初期化することです。

# /usr/bin/postgresql-setup --initdb

3. PostgreSQLクラスターが初期化されたので、今のところPostgreSQLサービスを開始し、システムの起動時に自動起動できるようにして、systemctlコマンドを使用してそのステータスを確認する必要があります。

# systemctl start postgresql
# systemctl enable postgresql
# systemctl status postgresql

PostgreSQLデータベースの保護と構成

このセクションでは、Postgresユーザーアカウントと管理ユーザーアカウントを保護する方法を示します。次に、PostgreSQLの構成方法、特にクライアント認証の設定方法について説明します。

4.次のようにpasswdユーティリティを使用してpostgresシステムユーザーアカウントのパスワードを作成します。

# passwd postgres

5.次に、postgresシステムユーザーアカウントに切り替え、PostgreSQL管理データベースユーザーアカウントのパスワードを作成して保護します(強力で安全なパスワードを設定することを忘れないでください)。

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

6.さまざまなPostgreSQL構成ファイルは、/var/lib/pgsql/data/ディレクトリにあります。ディレクトリ構造を表示するには、tree(dnf install treeを使用してインストール)コマンドを使用できます。

# tree -L 1 /var/lib/pgsql/data/

メインサーバーの設定ファイルは/var/lib/pgsql/data/postgresql.confです。また、クライアント認証は/var/lib/pgsql/data/pg_hba.confを使用して設定できます。

7.次に、クライアント認証を構成する方法を見てみましょう。 PostgreSQLデータベースシステムは、パスワードベースの認証を含むさまざまなタイプの認証をサポートしています。パスワードベースの認証では、md5、crypt、またはpassword(パスワードをクリアテキストで送信)のいずれかの方法を使用できます。

上記のパスワード認証方法は同じように機能しますが、主な違いは、ユーザーが入力したときに、ユーザーのパスワードが(サーバーに)保存され、接続を介して送信される方法です。

攻撃者によるパスワードスニッフィングを防ぎ、パスワードをプレーンテキストでサーバーに保存しないようにするには、図のようにmd5を使用することをお勧めします。次に、クライアント認証構成ファイルを開きます。

# vi /var/lib/pgsql/data/pg_hba.conf

そして、次の行を探して、認証方法をmd5に変更します。

host    all             all             127.0.0.1/32            md5
host    all             all		::1/128                 md5

8.次に、Postgresサービスを再起動して、構成の最近の変更を適用します。

# systemctl reload postgresql

9.この段階で、PostgreSQLデータベースサーバーのインストールは安全になりました。 postgresアカウントに切り替えて、PostgreSQLでの作業を開始できます。

# su - postgres
$ psql

PostgreSQLの公式ドキュメント(インストールしたバージョンのドキュメントを選択することを忘れないでください)を読んで、PostgreSQLがどのように機能し、アプリケーションの開発にどのように使用するかを理解できます。

それは今のところすべてです!このガイドでは、RHEL 8にPostgreSQLデータベース管理システムをインストール、保護、および構成する方法を示しました。以下のフィードバックフォームからフィードバックを送信できることを忘れないでください。