検索
連載

PostgreSQLのクライアント認証と暗号化の設定方法使えば分かるPostgreSQL運用&チューニング(3)(2/3 ページ)

本連載第1回で導入したPostgreSQLに対してクライアント認証の設定をします。運用形態によっては、クライアントアプリケーションとPostgreSQL間の通信を暗号化する必要がありますので、それについても併せて紹介します

PC用表示
Share
Tweet
LINE
Hatena

クライアント認証で設定する項目とそれぞれの挙動

 ここからは、それぞれの項目で指定する値と、その詳細を確認していきます。

接続形式の指定

 接続形式に指定できるものは表1の4種類です。

 TCP/IP接続を指定する場合は、postgresql.conflisten_addressパラメータも関係してきます。listen_addressには、TCP/IP接続を受け付けるインターフェイスのIPアドレスか、すべてのインターフェイスを表す*を指定する必要があります。

接続形式 内容
local UNIXドメインソケットを使用した接続
host TCP/IPを使用した接続。SSLの使用/未使用は考慮しない
hostssl SSLで暗号化されたTCP/IPを使用した接続
hostnossl SSLを使用していないTCP/IPを使用した接続
表1 接続形式に指定できる値

データベース名の指定

 データベース名の指定には、個別のデータベース名のほかに特別な意味を持つ単語、all、sameuser、sameroleがあります。それぞれの意味は表2の通りです。sameroleを指定する際に用いられる「ロール」という概念は、グループと同じと考えてよいでしょう。

 具体的なデータベース名を記述する場合は、カンマ区切りで複数指定できます。多くのデータベースを指定したい場合は、それらを別のファイルに記述して、データベース名の指定を@ファイル名とすると、そのファイルに書かれたデータベース名が適用されるようになります。

データベース名 内容
all すべてのデータベース
sameuser データベース名と同じ名前のユーザー
samerole データベースと同じ名前のロールに属するユーザー
データベース名, データベース名, ……(カンマ区切りの列挙) 列挙されているすべてのデータベース
@ファイル名 ファイルに記載されているすべてのデータベース
表2 pg_hba.confのデータベース名で指定できる特別な値

ユーザー名の指定

 ユーザー名の指定は、すべてのユーザーを表すallが使用できます。また、+ロール名とするとそのロールに属するユーザーを表すことができます。

 そのほか、多くのユーザーを指定したい場合はカンマ区切りで複数を指定することもできます。また、データベース名と同様に、それらを別のファイルに記述して、ユーザー名の指定を@ファイル名とすると、そのファイルに書かれたユーザー名が適用されるようになります。

ユーザー名 内容
all すべてのユーザー
+ロール名 ロールに属するユーザー
ユーザー名, ユーザー名, ……(カンマ区切りの列挙) 列挙されているすべてのユーザー
@ファイル名 ファイルに記載されているすべてのユーザー
表3 ユーザー名指定時に指定できる特別な値

IPアドレスの範囲指定

 IPアドレスの範囲指定は、「192.168.1.0/24」のように「IPアドレス/マスク長」の形式で記述します。また、「192.168.1.0 255.255.255.0」のように「IPアドレス マスク」の形式で書くこともできます。

 認証方法は、各種認証方式のほかにtrustとrejectがあります。trustは無条件で接続を許可し、rejectは、その反対で無条件で接続を拒否します。

 そのほかの認証方式については、パスワード認証、GSSAPI認証、ident認証、LDAP認証、PAM認証など、多岐にわたりますので、詳細はPostgreSQLマニュアルの「21.2. 認証方式」を参照してください。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る