★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 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

第20章 クライアント認証

目次

20.1. pg_hba.confファイル
20.2. ユーザ名マップ
20.3. 認証方式
20.3.1. trust認証
20.3.2. パスワード認証
20.3.3. GSSAPI認証
20.3.4. SSPI認証
20.3.5. Ident認証
20.3.6. Peer認証
20.3.7. LDAP認証
20.3.8. RADIUS認証
20.3.9. 証明書認証
20.3.10. PAM認証
20.3.11. BSD認証
20.4. 認証における問題点

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

注記

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

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

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

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