接続と認証

PostgreSQL 8.4.1文書
前のページ | 巻戻し | 第 18章サーバの構成 | 早送り | 次のページ

# 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_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`では、クライアントおよびサーバの両方でユーザ名をソルトとして使用しますので、`md5`を`db_user_namespace`と一緒に使用することはできません。

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

前のページ | ホーム | 次のページ
ファイルの場所 | 上に戻る | 資源の消費