PGSQL_TABLE(5)                                                  PGSQL_TABLE(5)



名前
       pgsql_table - Postfix PostgreSQL クライアントの設定

書式
       postmap -q "string" pgsql:/etc/postfix/filename

       postmap -q - pgsql:/etc/postfix/filename <inputfile

解説
       Postfix  メールシステムはオプションでアドレス書き換えやメールルーティン
       グのテーブルを使用します。これらのテーブルは通常 dbm または db フォーマ
       ットです。

       そ れ以外に、検索テーブルとして PostgreSQL データベースを指定することも
       できます。PostgreSQL 検索を使うには、main.cf の検索テーブルとして Post-
       greSQL ソースを定義します。例:
           alias_maps = pgsql:/etc/pgsql-aliases.cf

       /etc/postfix/pgsql-aliases.cf ファイルは Postfix main.cf ファイルと同じ
       書式であり、以下に示すようなパラメータを指定することができます。

別の設定方法
       他の Postfix 検索テーブルとの互換性のため、PostgreSQL パ ラ メ ー タ も
       main.cf で定義することができます。そうするためには、PostgreSQL ソースと
       してスラッシュやドットで始まらない名前を指定してください。そうするこ と
       で  PostgreSQL パラメータはソースに定義した名前、アンダースコア、パラメ
       ータ名という形で使えるようになります。例えば、マッ プ が  "pgsql:pgsql-
       name"   と し て 指定された場合、下の "hosts" パラメータは main.cf では
       "pgsqlname_hosts" として定義されます。

       注意: この形式では、PostgreSQL ソースのパスワードは、通 常  world-read-
       able な main.cf に書かれてしまいます。この形式のサポートは Postfix の将
       来のバージョンで削られる予定です。

リストメンバーシップ
       $mynetworks や $mydestination、$relay_domains、$local_recipient_maps 等
       のようなリストを格納するために SQL を使う場合、テーブルはそれぞれのリス
       トメンバーを別々のキーで格納しなければいけないことを理解することが重 要
       です。この議論は DATABASE_README ドキュメントの "Postfix リスト対テーブ
       ル" を参照してください。

       $mydestination や $relay_domains 等でドメインの完全なリストを返し た り
       $mynetworks で IP アドレスを返すテーブルを作っては「いけません」。

       キ ーとしてマッチするそれぞれの項目と属性値を持つテーブルを作って「くだ
       さい」。SQL データベースでは、キー自身や定数を返すのは珍しいことでは あ
       りません。

PGSQL パラメータ
       hosts  Postfix  が検索するために接続しようとするホスト。UNIX ドメインソ
              ケットは unix: を指定し、TCP 接続(デフォルト)は inet: を指定しま
              す。例:
                  hosts = host1.some.domain host2.some.domain
                  hosts = unix:/file/name

              hosts は任意の順序で試され、全ての UNIX ドメインソケットを通した
              接続は TCP を通した接続の前に試されます。約1分のアイドル後に接続
              は自動的に閉じられ、必要なときに再び開かれます。

              「注意」: 前に付けられた unix: および inet: は後方互換性のために
              受け付けられるものであって、実際には無視されます。 PostgreSQL ク
              ライアントライブラリは、名前がスラッシュで始まる場合には UNIX ソ
              ケットへの接続を、そうでなければ TCP 接続を常に試みようとしま す
              。

       user, password
              pgsql サーバにログインするためのユーザ名とパスワード。例:
                  user = someone
                  password = some_password

       dbname サーバ上のデータベース名。例:
                  dbname = customer_database

       以 下のパラメータは次の書式の SELECT クエリのテンプレートを埋めるのに使
       われます:
           select [select_field] from [table] where
               [where_field] = '$lookup' [additional_conditions]

       $lookup には検索文字列を含み、シングルクオートや変な文字が含まれてい て
       も エスケープされます。それゆえ、これはパースエラーやさらに悪いセキュリ
       ティ問題を引き起こすことはありません。

       select_field
              SQL "select" パラメータ。例:
                  select_field = forw_addr

       table  SQL "select .. from" テーブル名。例:
                  table = mxaliases

       where_field
              SQL "select .. where" パラメータ。例:
                  where_field = alias

       additional_conditions
              SQL クエリに対する追加条件。例:
                  additional_conditions = and status = 'paid'

       以下のパラメータは、デフォルトの SELECT 文を上書きする方法を提供しま す
       。 こ れ ら を 設 定 す る と、Postfix は上記の tableselect_fieldwhere_fieldadditional_conditions パラメータを無視するようになります:

       query  このパラメータは完全な SQL クエリを指定します。例:
                  query = select forw_addr from mxaliases where
                      alias = '%s' and status = 'paid'

              このパラメータは次の '%' 拡張をサポートします:

              %s     これは入力キーによって置き換えられます。入力キーが予期 し
                     な いメタ文字を加えないようにするため、引用符が使われます
                     。

              %u     入力キーが user@domain 形式のアドレスの場合、%u はアド レ
                     ス のローカル部分の引用符付きによって置き換えられます。ド
                     メインが指定されていなければ、%u は検索文字列全体で置き換
                     えられます。

              %d      入力キーが user@domain 形式のアドレスの場合、%d はアドレ
                     スのドメイン部分の引用符付きによって置き換えられます。 入
                     力キーがドメイン修飾されていなければ、%d は検索文字列全体
                     で置き換えられます。

       select_function
              このパラメータはデータベース関数名を指定します。例:
                  select_function = my_lookup_user_alias

              これは以下と同義です:
                  query = select my_lookup_user_alias('%s')

              そして query パラメータと上記のテーブルに関連するフィールドの 両
              方を上書きします。

              2002 年6月の時点では、関数が1行1列で NULL 値を返す場合、結果はキ
              ーが辞書にないものとして扱われます。

              将来のバージョンでは関数が結果のセットを返せるようになるでしょう
              。

関連項目
       postmap(1), Postfix 検索テーブルマネージャ
       postconf(5), 設定パラメータ
       ldap_table(5), LDAP 検索テーブル
       mysql_table(5), MySQL 検索テーブル

README ファイル
       DATABASE_README, Postfix 検索テーブルの概要
       PGSQL_README, Postfix PostgreSQL クライアントガイド

ライセンス
       The Secure Mailer license はこのソフトウェアと一緒に配布されなければ い
       けません。

歴史
       PgSQL サポートは Postfix バージョン 2.1 で導入されました。

作者
       ベースとなった MySQL クライアント:
       Scott Cotton, Joshua Marcus
       IC Group, Inc.

       PostgreSQL へのポーティング:
       Aaron Sethman

       それ以上の拡張:
       Liviu Daia
       Institute of Mathematics of the Romanian Academy
       P.O. BOX 1-764
       RO-014700 Bucharest, ROMANIA



                                                                PGSQL_TABLE(5)