他のバージョンの文書10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

18.3. 接続と認証

18.3.1. 接続設定

listen_addresses文字列

クライアントアプリケーションからの接続をサーバが監視する TCP/IP アドレスを指定します。この値は、ホスト名をコンマで区切ったリスト、そして/もしくは、数値によるIPアドレスです。*という特別なエントリは利用可能な全てのIPインタフェースに対応します。リストが空の場合、サーバはいかなるIPインターフェイスも全く監視しないで、Unixドメインソケットのみを使用して接続が行われます。デフォルトの値はlocalhostで、"loopback"接続のみが可能です。このパラメータはサーバ起動時のみ設定可能です。

port整数

サーバが監視するTCPポートで、デフォルトは 5432です。サーバが監視する全てのIPアドレスに対し、同じポート番号が使用されることを覚えておいてください。このパラメータはサーバ起動時のみ設定可能です。

max_connections整数

データベースサーバに同時接続する最大数を決定します。 デフォルトは典型的に100接続ですが、カーネルの設定が(initdbの過程で)それをサポートしていない場合、もっと少なくなることがあります。 このパラメータはサーバ起動時のみに設定可能です。

このパラメータを増加させると、使用しているオペレーティングシステムのデフォルト構成が許容するSystem V共有メモリもしくはセマフォの限界を越えた要求を PostgreSQLが行う原因となることがあります。 必要であれば、どの様にしてこのパラメータを調整するかについて項17.4.1を参照ください。

superuser_reserved_connections整数

PostgreSQLのスーパユーザによる接続のために予約されている接続"開口部(スロット)"の数を決定します。最大、max_connectionsの数までの接続を同時に有効にすることができます。何時の時点にあっても、有効な接続数は、少なくともmax_connectionsからsuperuser_reserved_connectionsを差し引いた数であって、新規接続はスーパユーザのみ受け入れられます。

デフォルトの値は3です。 この値は max_connectionsでの値より小さくなくてはなりません。 このパラメータはサーバ起動時のみ設定可能です。

unix_socket_directory文字列

サーバがクライアントアプリケーションからの接続要求を監視するUnixドメインソケットのディレクトリを指定します。デフォルトは通常/tmpですが、構築時に変更できます。このパラメータはサーバ起動時のみ設定可能です。

unix_socket_group文字列

Unixドメインソケットを所有するグループを設定します(ソケットを所有するユーザは常にサーバを起動するユーザです)。 unix_socket_permissionsパラメータとの組合せで、Unixドメインソケット接続の追加的アクセス管理機構として使うことができます。 デフォルトでは空文字列で、現在のユーザのデフォルトのグループを選択します。 このパラメータはサーバ起動時のみ設定可能です。

unix_socket_permissions整数

Unixドメインソケットのアクセス権限を設定します。 Unixドメインソケットは通常のUnixファイルシステム権限設定の一式を使用します。 パラメータ値は、chmodおよびumaskシステムコールが受け付ける数値形式での指定を想定しています。(通常使われる8進数形式を使用するのであれば、0(ゼロ)で始まらなければなりません。)

デフォルトの権限は、誰でも接続できる0777になっています。 変更するならば0770(ユーザとグループのみです。UNIX_SOCKET_GROUPも参照してください)や0700(ユーザのみ)が適切です。(実際、Unixドメインソケットでは書き込み権限だけが問題です。そのため、読み込み権限や実行権限を設定または解除する意味はありません。)

このアクセス制御機構は 第19章で記述されたものとは別個のものです。

このパラメータはサーバ起動時のみ設定可能です。

bonjour_name文字列

Bonjourブロードキャスト名を指定します。 このパラメータが空文字列''(デフォルトです)に設定されていると、コンピュータ名が使用されます。 サーバがBonjourサポート付でコンパイルでされていない場合は無視されます。 このオプションはサーバ起動時のみに設定可能です。

tcp_keepalives_idle整数

TCP_KEEPIDLEソケットオプションのサポートがあるシステムで、接続がアイドルとは違った状態で、 keepaliveを送信するまでの秒単位の時間を指定します。 0の場合はシステムのデフォルト値を使用します。 もし、TCP_KEEPIDLEがサポートされていない場合、このパラメータは0でなくてはなりません。 このパラメータはUnixドメインソケット経由の接続では無視されます。

tcp_keepalives_interval整数

TCP_KEEPINTVLソケットオプションがサポートされているシステムで、再送信する以前にkeepaliveの応答をどの位待つかを秒単位で指定します。 もし、TCP_KEEPINTVLがサポートされていないのであれば、このパラメータは0でなくてはなりません。 このパラメータはUnixドメインソケット経由の接続では無視されます。

tcp_keepalives_count整数

TCP_KEEPCNTソケットオプションがサポートされているシステムで、接続が切れたと考えられる以前にいくつのkeepaliveが失われるかを指定します。 もし、TCP_KEEPCNTがサポートされていないなら、このパラメータは0でなくてはなりません。 このパラメータはUnixドメインソケット経由の接続では無視されます。

18.3.2. セキュリティと認証

authentication_timeout整数

秒単位による、クライアント認証を完了するまでの最大時間です。 もし、この時間内に自称クライアントが認証プロトコルを完了しない場合、サーバは接続を中断します。 これはハングしたクライアントが接続を永久に占有することを防ぎます。 デフォルトは1分(1m)です。 このパラメータはpostgresql.confファイル、またはサーバのコマンドラインでのみ設定可能です。

ssl論理値

SSLによる接続を有効にします。これを使用する前に項17.8をお読みください。デフォルトはoffです。このパラメータはサーバ起動時のみ設定可能です。SSL通信はTCP/IP接続の場合のみ有効です。

ssl_renegotiation_limit (整数)

そのセッションの再調停が行われる前にどれだけの量を超えたデータのSSL暗号化接続が流れても良いかを指定します。セッションの再調停では大量のデータが送出された場合、暗号解析を行う機会を減少させます。しかし、同時に多大な性能上の不利益をもたらします。送出されたのと受け取られたトラフィックの合計はその限度の検証に使用されます。もしパラメータが0に設定されると再調停は無効になります。デフォルトは512MBです。

注意: SSLプロトコルにおける脆弱性によりSSL再調停を使用した場合、2009年11月以前のSSLライブラリは安全でありません。この脆弱性への応急的な対処として、いくつかのベンダーは再調停を行う機能がないSSLライブラリも出荷しました。もしこれらのライブラリのいくつかでもクライアントまたはサーバで使用されているのであれば、SSL再調停は無効にするべきです。

ssl_ciphers (文字列)

安全な接続で使用できるSSL暗号のリストを指定します。 サポートされる暗号のリストについてはopensslのマニュアルページを参照してください。

password_encryption論理値

ENCRYPTEDもしくはUNENCRYPTEDの指定なしで、CREATE USER もしくはALTER USERにてパスワードが指定されている場合、このパラメータはパスワードを暗号化するか否かを決定します。 デフォルトはon(パスワードを暗号化)です。

krb_server_keyfile文字列

Kerberosサーバの鍵ファイルの場所を設定します。詳細は項19.3.5または項19.3.3を参照してください。 このパラメータはpostgresql.confファイル、またはサーバのコマンドラインでのみ設定可能です。

krb_srvname文字列

Kerberosのサービス名を設定します。詳細は項19.3.5を参照してください。このパラメータはpostgresql.confファイルか、サーバコマンドラインでのみ設定可能です。

krb_caseins_users論理値

KerberosおよびGSSAPIのユーザ名が大文字小文字を区別すべきかの設定をします。 デフォルトはoff(大文字小文字を区別する)です。 このパラメータはpostgresql.confファイル、またはサーバのコマンドラインでのみ設定可能です。

db_user_namespace論理値

このパラメータはデータベース毎のユーザ名を可能にします。 デフォルトではオフです。 このパラメータはpostgresql.confファイル内、またはサーバのコマンドラインのみで設定可能です。

これがオンの場合、username@dbnameの様にしてユーザを作成しなければなりません。usernameが接続中のクライアントより渡された時、 @およびデータベース名がユーザ名に付加され、そのデータベース特有のユーザ名をサーバが見に行きます。SQL環境下で@を含む名前のユーザを作成する場合、そのユーザ名は引用符で括られなければならないことに注意してください。

このパラメータを有効にしていても通常の広域ユーザを作成することができます。 クライアントにユーザ名を指定する時に、単に@を付け加えてください。@はサーバがユーザ名を検索する以前に取り去られます。

db_user_namespaceはクライアントとサーバのユーザ名の表示を区別することができます。 認証検査は常にサーバのユーザ名で行われるので、認証方式はクライアントのではなくサーバのユーザ名で構成されなければなりません。 md5では、クライアントおよびサーバの両方でユーザ名をソルトとして使用しますので、md5db_user_namespaceと一緒に使用することはできません。

注意: この機能は完全な解決策が見つかるまでの暫定的な手段です。見つかった時点でこのオプションは削除されます。