第 19章クライアント認証

目次
19.1. pg_hba.confファイル
19.2. ユーザ名マップ
19.3. 認証方式
19.3.1. Trust認証
19.3.2. パスワード認証
19.3.3. GSSAPI認証
19.3.4. SSPI認証
19.3.5. Kerberos認証
19.3.6. Identを基にした認証
19.3.7. Peer認証
19.3.8. LDAP認証
19.3.9. RADIUS authentication
19.3.10. 証明書認証
19.3.11. PAM認証
19.4. 認証における問題点

クライアントアプリケーションがデータベースサーバに接続する時、Unixコンピュータに特定のユーザとしてログインする時と同じように、どのPostgreSQLユーザ名で接続するかを指定します。 SQL 環境の中では存在するユーザ名でデータベースオブジェクトへのアクセス権限が決まります。 詳しい情報は第20章を参照してください。 ですから、どのデータベースユーザがデータベースに接続できるかを制限することが基本となります。

注意: 第20章で説明されていますが、実はPostgreSQL"roles"によって権限の管理を行っています。 この章では一貫してデータベースユーザという呼び方を"ログイン権限を持つロール"として使用します。

認証はデータベースサーバがクライアントの身元を識別し、その延長としてクライアントアプリケーション(もしくはクライアントアプリケーションを実行するユーザ)が要求されたデータベースユーザ名で接続することができるかどうかを決定する手順です。

PostgreSQLには異なったクライアント認証方法を複数提供します。 特定のクライアント接続の認証に使用する方法は、(クライアントの)ホストアドレス、データベース、およびユーザに従って選択できます。

PostgreSQLデータベースユーザ名は稼働しているサーバのオペレーティングシステムのユーザ名とは論理的に分かれています。 もし特定のサーバの全てのユーザがサーバマシン上にもアカウントを持っている場合、そのオペレーティングシステムのユーザ名に一致するデータベースユーザ名を割り当てることは理にかなっています。 しかし、リモート接続を受け付けるサーバは、ローカルなオペレーティングシステムのアカウントを持たないデータベースユーザを多く持っている場合もあります。 そのような時にはデータベースユーザ名とOSのユーザ名との間の関連性は必要ありません。