���饤����ȥ��ץꥱ������ǡ����١��������С�����³����Ȥ��ϡ�Unix ����ԥ塼��������Υ桼�����Ȥ��ƥ�������Ȥ���Ʊ���褦�ˡ��ɤ� PostgreSQL �桼����̾����³���뤫����ꤷ�ޤ��� SQL �Ķ�����Ǥ�¸�ߤ���ǡ����١����桼����̾�ǥǡ����١������֥������ȤؤΥ����������¤���ޤ�ޤ��� �ܤ�������� Chapter 4 �Ȥ��Ƥ��������� �Ǥ����顢�ɤΥǡ����١����桼�������ǡ����١�������³�Ǥ��뤫�����¤��뤳�Ȥ�����Ū����Ȥʤ�ޤ���
ǧ���ϥǡ����١��������С������饤����Ȥοȸ����̤������α�Ĺ�Ȥ��ƥ��饤����ȥ��ץꥱ�������ʤ⤷���ϥ��饤����ȥ��ץꥱ��������¹Ԥ���桼�����ˤ��ᤵ�줿�桼����̾����³���뤳�Ȥ��Ǥ��뤫�ɤ�������ꤹ����Ǥ���
PostgreSQL �ˤϰۤʤä������Ĥ��Υ��饤�����ǧ����ˡ������ޤ��� ����Υ��饤�������³��ǧ�ڤ˻��Ѥ�����ˡ�ϡ�(���饤����Ȥ�) �ۥ��ȥ��ɥ쥹���ǡ����١���������ӥ桼�����ˤ������ä�����Ǥ��ޤ���
PostgreSQL �Υ桼����̾�ϲ�Ư���Ƥ��륵���С��Υ��ڥ졼�ƥ������ƥ�Υ桼����̾�Ȥ�������ط����䤿��Ƥ��ޤ��� �⤷����Υ����С��Τ��٤ƤΥ桼�����������С��ޥ����ˤ⥢������Ȥ���äƤ����硢���Υڥ졼�ƥ������ƥ�Υ桼����̾�˾ȹ礹��ǡ����١����桼����̾�������Ƥ뤳�Ȥ����ˤ��ʤäƤ��ޤ��� �ȤϤ��äƤ⡢��⡼����³���������륵���С��Ϥ��Υ���ԥ塼����˥�������Ȥ�����ʤ�¿���Υ桼�����������Ƥ�����⤢�äơ����Τ褦�ʻ��ˤϥǡ����١����桼����̾�� Unix �桼����̾�Ȥδ֤δ�Ϣ����ɬ�פ���ޤ���
���饤�����ǧ�ڤϥǡ����ǥ��쥯�ȥꡢ�㤨�� /usr/local/pgsql/data/pg_hba.conf �ˤ��� pg_hba.conf �ե�����Ǵ�������Ƥ��ޤ��� (HBA �Ȥϡ�host-based authentication���ۥ��ȥ١�����ǧ�ڤ�ά�Ǥ���) �ǥե���Ȥ� pg_hba.conf �ե�����ϥǡ����ǥ��쥯�ȥ꤬ initdb �ǽ�����������˥��ȡ��뤵��ޤ���
pg_hba.conf �ե�����ΰ���Ū�ʥե����ޥåȤϡ�1 �� �ˤĤ� 1 �ĤΥ쥳���ɤν��ޤ�Ǥ��� ���Ԥϥ������Ѥ� "#" ʸ���ǻϤޤ�Ԥ�Ʊ����̵�뤵��ޤ��� �쥳���ɤϥ��ڡ����⤷���ϥ��֤Ƕ��ڤ�줿�����Ĥ��Υե�����ɤǹ�������Ƥ��ޤ��� �ե�����ɤϡ��ե�������ͤ��������դ��ξ��ϥ��ڡ�����ޤळ�Ȥ��Ǥ��ޤ��� �쥳���ɤϹԤ�ޤ�����³���뤳�ȤϤǤ��ޤ���
���줾��Υ쥳���ɤ���³�η�����(��³�����ˤ������ư�̣����ĤΤǤ����) ���饤����Ȥ� IP ���ɥ쥹�ϰϡ��ǡ����١�����̾�����桼����̾����ӡ������Υѥ�����ȹ礹����³�ǻ��Ѥ����ǧ����ˡ����ꤷ�ޤ��� �ȹ�Τ������³�η��������饤����ȥ��ɥ쥹���ᤵ�줿�ǡ����١���������ӥ桼����̾��ޤ�ǽ�Υ쥳���ɤϡ�ǧ�ڽ����˻��Ѥ���ޤ��� "�ȹ�뤺��ȷ�³"�����ꡢ ���뤤��"�Хå����å�"��Ԥ����ȤϤ���ޤ��� ����ϡ��⤷����쥳���ɤ������ǧ�ڤ˼��Ԥ�����硢��³�Υ쥳���ɤϹ�θ����ʤ��Ȥ������ȤǤ��� �ɤΥ쥳���ɤ���פ��ʤ����ϥ������������ݤ���ޤ���
�쥳���ɤΥե����ޥåȤϼ��� 3 �ĤΤ����Τɤ줫�ˤʤ�ޤ���
local database user authentication-method [authentication-option] host database user IP-address IP-mask authentication-method [authentication-option] hostssl database user IP-address IP-mask authentication-method [authentication-option]
�ե�����ɤΰ�̣�ϰʲ��Τ褦�ˤʤäƤ��ޤ���
���Υ쥳���ɤ� Unix �ɥᥤ���åȤ���Ѥ�����³���б����ޤ��� ���μ���Υ쥳���ɤ���Ѥ��ʤ��ȡ�Unix �ɥᥤ���åȷ�ͳ����³�ϵ��ݤ���ޤ���
���Υ쥳���ɤ� TCP/IP �ͥåȥ������Ѥ�����³���б����ޤ��� �������������С��� -i ���ץ�����դǵ�ư����Ƥ��뤫�����뤤�� tcpip_socket postgresql.conf ����ѥ��������Ѳ�ǽ�Ǥʤ��¤ꡢTCP/IP ��³�ϤǤ��ʤ����Ȥ����դ��Ƥ���������
���Υ쥳���ɤ� TCP/IP ��ͳ�� SSL ����Ѥ�����³���б����ޤ��� host �쥳���ɤ� SSL ������� SSL �ˤ����³��ԤΤɤ���ˤ��б����ޤ�����hostssl �쥳���ɤ� SSL ��³���ᤷ�ޤ���
���Υ��ץ�������Ѥ��뤿��ˤϡ������С��� SSL ���ݡ��Ȥ��Ǥ���褦�˹��ۤ���Ƥ��ʤ���Ф����ޤ��� �ޤ���postgresql.conf �� ssl ���ץ�����ͭ���ˤ��뤳�Ȥ� SSL ����Ѳ�ǽ�ˤ���ɬ�פ�����ޤ� (Section 3.4 ��)��
���Υ쥳���ɤǾȹ礹��ǡ����١�������ꤷ�ޤ��� all �Ȥ����ͤϡ����٤ƤΥǡ����١����Ⱦȹ礹�뤳�Ȥ���ꤷ�ޤ��� sameuser �Ȥ����ͤϡ���������ǡ����١�������桼������Ʊ��̾������ľ��˥쥳���ɤ�ȹ礹�뤳�Ȥ���ꤷ�ޤ��� samegroup �Ȥ����ͤϡ���桼��������������ǡ����١�����Ʊ��̾���Υ��롼�פΥ��С��Ǥʤ���Фʤ�ʤ����Ȥ���ꤷ�ޤ��� ����ʳ��ξ��ˤ������ PostgreSQL �ǡ����١�����̾���ˤʤ�ޤ��� �ǡ����١�����̾���ϥ���ޤǶ��ڤ뤳�Ȥ�ʣ������Ǥ��ޤ��� �ǡ����١���̾��ޤ�ե�����ϡ����Υե�����̾������ @ ���դ��뤳�Ȥǻ���Ǥ��ޤ��� ���Υե������ pg_hba.conf ��Ʊ���ǥ��쥯�ȥ��¸�ߤ���ɬ�פ�����ޤ���
���Υ쥳���ɤǾȹ礹�� PostgreSQL �桼��������ꤷ�ޤ��� all �Ȥ����ͤϡ����٤ƤΥ桼�����Ⱦȹ礹�뤳�Ȥ���ꤷ�ޤ��� ����ʳ��ξ��ˤ������ PostgreSQL �桼������̾���ˤʤ�ޤ��� �桼������̾���ϥ���ޤǶ��ڤ뤳�Ȥ�ʣ������Ǥ��ޤ��� ���롼��̾�ϡ����Υ��롼��̾������ + ���դ��뤳�Ȥǻ���Ǥ��ޤ��� �桼����̾��ޤ�ե�����ϡ����Υե�����̾������ @ ���դ��뤳�Ȥǻ���Ǥ��ޤ��� ���Υե������ pg_hba.conf ��Ʊ���ǥ��쥯�ȥ��¸�ߤ���ɬ�פ�����ޤ���
���� 2 �ĤΥե�����ɤˤϡ�ɸ��Υɥåȶ��ڤ� 10 ��ɽ����ɽ���줿 IP ���ɥ쥹 / �ޥ������ͤ�����ޤ��� (IP ���ɥ쥹�ϥɥᥤ���ۥ���̾�ǤϤʤ������ͤˤ�äƤΤ���Ǥ��ޤ���) ξ���Υե�����ɤ���Ѥ��ơ����Υ쥳���ɤ��ȹ礹�륯�饤����ȥޥ���� IP ���ɥ쥹����ꤷ�ޤ��� �ܺ٤ʹͤ����ϰʲ��Τ褦�ˤʤ�ޤ���
���α黻�������Ǥʤ��ȥ쥳���ɤȾȹ礵��ޤ��� �ʤ������ IP ���ɥ쥹�뤳�Ȥ��Ǥ��ޤ��������Υơ��ޤ��θ����Τ� PostgreSQL �μ����ϰϳ��Ǥ���
�����Υե�����ɤ� host ����� hostssl �쥳���ɤˤΤ�Ŭ�Ѥ���ޤ���
���Υ쥳���ɤ����Ѥ�����³����ݤ˻��Ѥ���ǧ����������ꤷ�ޤ��� ���ѤǤ��������ϲ����ΤȤ���Ǥ������ܤ����� Section 6.2 �Ȥ��Ƥ���������
��³��̵���ǵ��Ĥ���ޤ��� ���������ϡ�PostgreSQL �ǡ����١�������³�Ǥ��뤹�٤ƤΥ桼��������Ǥ�դ� PostgreSQL �桼�����Ȥ��ƥѥ���ɤʤ��ǥ������뤳�Ȥ���Ĥ��ޤ��� �ܺ٤� Section 6.2.1 �Ȥ��Ƥ���������
��³��̵���˵��ݤ���ޤ��� ����Υۥ��Ȥ롼�פ���"����"���뤿��������Ǥ���
���饤����Ȥ��Ф���ǧ�ڤǻ��Ѥ��� MD5 �Ź沽�ѥ���ɤ��ᤷ�ޤ��� ����ϰŹ沽�ѥ���ɤ� pg_shadow ���ݴɤ��뤳�Ȥ��Ǥ���ͣ��������Ǥ��� �ܺ٤� Section 6.2.2 �Ȥ��Ƥ���������
md5 �����Ȼ��Ƥ��ޤ��� 7.2 �����Υ��饤����Ȥ�ɬ�פȤ���켰�� crypt �Ź沽��������Ѥ��ޤ��� 7.2 �ʹߤΥ��饤����ȤǤ� md5 �������ɤ��Ǥ��礦�� �ܺ٤� Section 6.2.2 �Ȥ��Ƥ���������
��md5��������Ʊ���Ǥ������ѥ���ɤϥͥåȥ�����̤������̤Υƥ����ȷ����������ޤ��� ���ꤵ��Ƥ��ʤ��ͥåȥ���Ǥϻ��Ѥ��ʤ��Ǥ��������� �ܺ٤� Section 6.2.2 �Ȥ��Ƥ���������
�桼����ǧ�ڤ� Kerberos V4 ����Ѥ��ޤ��� TCP/IP ��³�λ��Τ�ͭ���Ǥ��� �ܺ٤� Section 6.2.3 �Ȥ��Ƥ���������
�桼����ǧ�ڤ� Kerberos V5 ����Ѥ��ޤ��� TCP/IP ��³�λ��Τ�ͭ���Ǥ��� �ܺ٤� Section 6.2.3 �Ȥ��Ƥ���������
���饤����ȤΥ��ڥ졼�ƥ������ƥ�Υ桼����̾�� (TCP/IP ��³�Ǥϥ��饤����Ⱦ�� ident �����С��˿Ҥͤ뤳�Ȥǡ�����������³�Ǥϥ��ڥ졼�ƥ������ƥफ��) ��������ident ������ɤ�³���ƻ��ꤵ�줿�ޥåפ�Ĵ�٤뤳�Ȥǡ����Υ桼�������ᤵ�줿�ǡ����١����Υ桼�����Ȥ�����³����Ĥ���Ƥ��뤫�ɤ��������ޤ���
�ޥåפ� sameuser ����Ѥ��Ƥ����硢���ڥ졼�ƥ������ƥ�Υ桼����̾�ȥǡ����١����Υ桼����̾��Ʊ��Ǥ���Ȥߤʤ���ޤ��� �����Ǥʤ����ϡ��ޥåפ�̾���� pg_hba.conf ��Ʊ���ǥ��쥯�ȥ�ˤ��� pg_ident.conf �ե����뤫�鸡������ޤ��� ident ������줿�桼����̾���ᤵ�줿 PostgreSQL �Υ桼����̾����ĥޥå�̾�ι��ܤ����Υե�����˴ޤޤ�Ƥ����硢��³�ϵ��Ĥ���ޤ���
����������³�ξ��ϡ�Unix �ɥᥤ���åȤο��Ѿ��� (����ǥ��) �ݡ��Ȥ��Ƥ���ޥ��� (�������Ǥ� Linux��FreeBSD��NetBSD������� BSD/OS) �ǤΤߵ�ǽ���ޤ���
�ܺ٤ϰʲ��� Section 6.2.4 �Ȥ��Ƥ���������
���ڥ졼�ƥ������ƥ�ˤ�ä������ PAM(Pluggable Authentication Modules) �����ӥ�����Ѥ���ǧ�ڤǤ��� �ܺ٤� Section 6.2.5 �Ȥ��Ƥ���������
���Υ��ץ����ե�����ɤΰ�̣�ϡ����줿ǧ�������ˤ�äưۤʤ�ޤ�����������������ޤ���
pg_hba.conf �쥳���ɤ���³����ߤ����٤��༡Ū�˸�������ޤ����쥳���ɤν���ϤȤƤ����ڤǤ��� ŵ��Ū�ˤϡ��Ϥ�Τۤ��Υ쥳���ɤˤϸ�������³�ȹ�ѥ����ȴˤ��ȹ�����������Τ��Ф�������Τۤ��Υ쥳���ɤˤϤ��ˤ��ȹ�ѥ����Ȥ�긷����ǧ������������ޤ��� �㤨�С��������� TCP ��³�Ǥ�trust ǧ����������⡼�� TCP ��³���Ф��Ƥϥѥ���ɤ��ᤷ�����Ȥ��ޤ��� ���ξ�硢���ϰϤˤ錄�äƵ��Ĥ���륯�饤����Ȥ� IP ���ɥ쥹���Ф���ѥ����ǧ�ڤ���ꤹ��쥳���ɤ����� 127.0.0.1 �������³���Ф��� trust ǧ�ڻ���Υ쥳���ɤ��֤���ʤ���Фʤ�ޤ���
Important: �����ѡ��桼������ template1 �ǡ����١����˥����������뤳�Ȥ�˸���ʤ��Ǥ��������� ���ޤ��ޤʥ桼�ƥ���ƥ����ޥ�ɤ� template1 �ؤΥ���������ɬ�פǤ���
pg_hba.conf �ե�����ϵ�ư���ȡ�postmaster �� SIGHUP ����������ä��Ȥ����ɤ߹��ޤ�ޤ��� ��Ư��Υ����ƥ�ǥե�������Խ��������ϡ���pg_ctl reload ���뤤�� kill -HUP ����Ѥ��ơ�postmaster �˥ե������⤦�����ɤ߹���褦�˿����Ф��ʤ���Фʤ�ޤ���
pg_hba.conf�ե�����ΰ���� Example 6-1�˼����ޤ��� �ۤʤ�ǧ�ڥ�åɤξܺ٤ˤĤ��ƤϤ��θ���������ޤ���
Example 6-1. pg_hba.conf �ե��������
# �������륷���ƥ��Τ��٤ƤΥ桼��������Ǥ�դΥǡ����١����� # Ǥ�դΥ桼����̾�� Unix �ɥᥤ���åȤ���Ѥ�����³���뤳�Ȥ���� # (����������³�Ǥϥǥե����)�� # # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD local all all trust # ��������롼�ץХå��� TCP/IP ��³�Ǥ��뤳�Ȥ�����ƾ嵭��Ʊ���� # # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD host all all 127.0.0.1 255.255.255.255 trust # IP ���ɥ쥹 192.168.93.x ����Ĥ��٤ƤΥۥ��ȤΤ��٤ƤΥ桼�������� # ident ��������³�ˤĤ�����𤹤�Τ�Ʊ���桼����̾ (ŵ��Ū�ˤ� Unix �桼����̾) �� # �ǡ����١�����template1�פ���³���뤳�Ȥ���ġ� # # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD host template1 all 192.168.93.0 255.255.255.0 ident sameuser # �桼�����Υѥ���ɤ����������Ϥ��줿��硢 # �ۥ��� 192.168.12.10 ����Υ桼�������ǡ����١�����template1�פ���³���뤳�Ȥ���ġ� # # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD host template1 all 192.168.12.10 255.255.255.255 md5 # ��Ԥ����host�Ԥ��ʤ���С������ 2 �Ԥˤ�ä� # (���ι��ܤ��ǽ�˾ȹ礵��뤳�Ȥ���) 192.168.54.1 �������³�λ�ߤ٤Ƶ��ݡ� # â���������ͥåȾ��¾�Τ��٤Ƥξ�꤫��� Kerberos V ��³�ϵ��ġ� # �����ޥ����ϡ��ۥ��� IP ���ɥ쥹�ΥӥåȤ��θ������ # �ɤΥۥ��ȤǤ�ȹ�Ǥ��뤳�Ȥ��̣���롣 # # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD host all all 192.168.54.1 255.255.255.255 reject host all all 0.0.0.0 0.0.0.0 krb5 # 192.168.x.x �ۥ��Ȥ���Υ桼��������ident �����å����̤��硢 # �ɤΥǡ����١����ˤǤ���³����ġ��⤷��ident ����bryanh�פ�ǧ�ꤷ # ��bryanh�פ� PostgreSQL �Υ桼������guest1�פȤ��� # ��³���Ф���硢��bryanh�פϡ�guest1�פȤ�����³�����Ĥ���ޤ��Ȥ��� # �ޥåס�omicron�פ��Ф��뵭�ܻ��ब pg_ident.conf �ˤ������³����ġ� # # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD host all all 192.168.0.0 255.255.0.0 ident omicron # ����������³���Ф��Ƥ��ä� 3 �Ԥ������ܤ��ʤ���硢��������桼������ # ��ʬ�Υǡ����١��� (�桼����̾��Ʊ��̾���Υǡ����١���) �ˤΤ���³���ġ� # â�������Ԥȥ��롼�ס�support�פΥ��С��� # ���٤ƤΥǡ����١�������³��ǽ�� # $PGDATA/admins �ե�����ϥ桼����̾�Υꥹ�Ȥ�ޤࡣ # ���٤Ƥξ��˥ѥ���ɤ�ɬ�ס� # # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD local sameuser all md5 local all @admins md5 local all +support md5 # �嵭�κǸ�� 2 �Ԥ� 1 �ĤιԤˤޤȤ�뤳�Ȥ���ǽ�� local all @admins,+support md5 # �ǡ����١�������ˤϥꥹ�Ȥ�ե�����̾����ѤǤ��뤬�����롼�פϻ��ѤǤ��ʤ��� local db1,db2,@demodbs all md5