- 追加された行はこの色です。
- 削除された行はこの色です。
[[DB/PostgreSQL]]
*pg_hba.conf (クライアント認証の設定) [#acd19c5f]
**書式 [#s2e0a99e]
-UNIXドメインソケットの設定
local [データベース名] [ロール名(ユーザ名)] [認証方式]
local [データベース名] [ロール名(ユーザ名)] [認証方式] [オプション]
-TCP/IP接続時の設定
host [データベース名] [ロール名(ユーザ名)] [アドレス] [認証方式]
host [データベース名] [ロール名(ユーザ名)] [アドレス] [認証方式] [オプション]
※hostの代わりに以下も使用可能
hostssl <-- SSLで暗号化されている接続の場合
hostnossl <-- SSLで暗号化されていない接続の場合
***データベース名 [#j9caabc2]
all を指定すると全てのデータベースが対象となります。
***ロール名(ユーザ名) [#rb554062]
all を指定すると全てのロールが対象となります。
***アドレス [#ge2bb3cb]
以下のような指定が可能
0.0.0.0/0 <-- 全アドレス
127.0.0.1/32 <-- IPv4の127.0.0.1のみ
::1/128 <-- IPv6の::1のみ
192.168.0.0/24 <-- IPv4の 192.168.0.0~192.168.0.255
192.168.0.0 255.255.0.0 <-- IPアドレス サブネットマスクの形式でも良い
***認証方式 [#aa00d786]
---trust
-trust
接続を無条件で許可する。(パスワード無しでログイン可能)
---reject
この方式を使っても良いのは、local か、アドレス 127.0.0.1/32 or ::1/128 ぐらい。
&color(red){注意! OSにログイン可能なユーザならアクセスできちゃう可能性があると思ってください。(PostgreSQLのユーザ名なんかは直ぐ分かるので)};
-reject
接続を無条件で拒否する。
---md5
-md5
認証にMD5暗号化パスワードを使用する。
---krb5
-krb5
認証にKerberos V5を使用する。
--ident, peer
-ident, peer
クライアントのOSにおけるユーザ名をクライアント上のidentサーバに問い合わせ、ユーザ名が一致するか検査する。
TCP接続の場合 ident、ローカル接続の場合はpeer認証が使用される。
--ldap
-ldap
LDAPサーバを使用して認証する。
--radius
-radius
RADIUSサーバを使用して認証する。
--cert
-cert
SSLクライアント証明を使用して認証する。
--pam
-pam
PAMサービスを使用して認証する。
--gss
-gss
GSSAPIを使用して認証する。
--sspi
-sspi
Windowsのみ。SSPIを使用して認証する。
*** [#g359e141]
***オプション [#e756e557]
認証方式のオプションを設定する。
**設定例 [#ra374445]
# UNIX domain socket connections
local sandbox all trust
local all all ident
# IPv4 local connections:
host sandbox all 127.0.0.1/32 trust
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host sandbox all ::1/128 trust
host all all ::1/128 md5
**参照 [#qcdf7857]
詳細は、[[PostgreSQLポータルサイト 19.1.pg_hba.confファイル:http://www.postgresql.jp/document/current/html/auth-pg-hba-conf.html]]を参照