¢£¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤ÎÅÐÏ¿
PostgreSQL¤Ç¤Ï¡¢OS¤Î¥æ¡¼¥¶¤È¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤È¤ÏÆÈΩ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢
¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò°·¤¦¤Ë¤Ï¡¢PostgreSQL¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤òÅÐÏ¿¤¹¤ëɬÍפ¬¤¢¤ë¡£
¿·¤·¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤òÅÐÏ¿¤¹¤ë¤Ë¤Ï¡¢
postgres¥æ¡¼¥¶¤Çcreateuser¥³¥Þ¥ó¥É¤ò¼Â¹Ô¡£
createuser¥³¥Þ¥ó¥É¤Ï¡¢postmaster¤¬Æ°¤¤¤Æ¤¤¤ë¾õÂ֤Ǥʤ¤¤Èưºî¤·¤Ê¤¤¡£
Äɲ乤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶Ì¾¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹ºîÀ®µö²Ä¡¢¥æ¡¼¥¶Äɲõö²Ä¤òʹ¤¤¤Æ¤¯¤ë¤Î¤Ç¡¢½ç¼¡¤Ë²òÅú¡£
$ /usr/local/pgsql/bin/createuser -P
Enter name of user to add: hori
Enter password for user "hori": ¥Ñ¥¹¥ï¡¼¥É
Enter it again: ¾å¤ÇÆþÎϤ·¤¿¥Ñ¥¹¥ï¡¼¥É
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶ hori¤òÄɲä·¡¢¤³¤Î¥æ¡¼¥¶¤¬¿·¤·¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºîÀ®¤Ç¤¤ë¤è¤¦¤Ë¤·¤¿¡£
DB¥æ¡¼¥¶¤Î°ìÍ÷
¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤Î°ìÍ÷¤Ï¡¢psql¤Ç¥³¥ó¥½¡¼¥ë¤ËÆþ¤Ã¤Æ¡¢
=> \du
List of database users
User name | User ID | Attributes
-----------+---------+----------------------------
hori | 100 | create database
olap | 101 | create database
postgres | 1 | superuser, create database
(3 rows)
¢£¥Ñ¥¹¥ï¡¼¥É¤ÎÀßÄê¤È¥µ¡¼¥Ð¤ÎºÆµ¯Æ°
½é´ü¾õÂ֤Ǥϡ¢
postgres¥æ¡¼¥¶¤Ë¥Ñ¥¹¥ï¡¼¥É¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
¡¥µ¡¼¥Ð¡¼¤òµ¯Æ°¤·¤Æ¡¢¸å½Ò¤ÎÊýË¡¤Ç¡¢
postgres¥æ¡¼¥¶¤Ë¥Ñ¥¹¥ï¡¼¥É¤òÀßÄê¡£
¢¤³¤ì¤â¸å½Ò¤ÎÊýË¡¤Ç¥µ¡¼¥Ð¡¼¤òÄä»ß¤·¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤ò½¤Àµ¤·¤Æ¡¢¥Ñ¥¹¥ï¡¼¥É¤ò»È¤¦¤è¤¦¤Ë¤¹¤ë¡£
TODO: pg_ctl reload¤«¡¢kill -HUP¤Ç¡¢ºÆÆÉ¤ß¹þ¤ß¤µ¤ì¤ë¡£
PostgreSQL¤Îǧ¾Ú¤Ï¡¢$(PGDATA)/pg_hba.conf¥Õ¥¡¥¤¥ë¤¬´ÉÍý¡£
pg_hba.conf¥Õ¥¡¥¤¥ë¤Ï¡¢initdb¥³¥Þ¥ó¥É¤¬¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£ ¡¡
$(PGDATA)/pg_hba.conf¥Õ¥¡¥¤¥ë¤Ëǧ¾ÚÊýË¡¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£¤³¤ì¤ò½¤Àµ¡£
¡Ötrust¡×¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¥Á¥§¥Ã¥¯¤Ê¤·¤Ë¥µ¡¼¥Ð¡¼¤Ø¤ÎÀܳ¤òµö²Ä¤¹¤ë¡£
trust¤òmd5¤ËÊѹ¹¡£
local all all md5
host all all 127.0.0.1 255.255.255.255 ¡Úmd5¡Û
¤³¤Î¾õÂ֤ǥµ¡¼¥Ð¡¼¤ò³«»Ï¤¹¤ë¤È¡¢¥Ñ¥¹¥ï¡¼¥É¤¬Í׵ᤵ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£
¤·¤«¤·¡¢¤³¤ì¤À¤±¤Ç¤Ï¡¢¥µ¡¼¥Ð¡¼¤ØÀܳ¤·¤¿¥æ¡¼¥¶¡¼¤Ï¡¢¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤¤ë¡£
ǧ¾ÚÊý¼°¤¬ident¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥Ñ¥¹¥ï¡¼¥Éǧ¾Ú¤µ¤ì¤Ê¤¤¡£
¥Ñ¥¹¥ï¡¼¥É¤Ï¡¢password, md5, crypt¤Î¤È¤¤Î¤ß͸ú¡£
ident¤Î¤È¤¤Ï¡¢UNIX¥æ¡¼¥¶¡¼¤¬¤½¤Î¤Þ¤ÞPostgreSQL¥æ¡¼¥¶¡¼¤È¤·¤Æ°·¤ï¤ì¤ë¡£
¤·¤¿¤¬¤Ã¤Æ¡¢¼¡¤Î¤è¤¦¤Êµóư¤Ë¤Ê¤ë¡£
$ createuser -U
postgres -W
postgres' password => ¤³¤ì¤Ï¼ºÇÔ¡£
-U, -W¤Ï̵»ë¤µ¤ì¤Æ¤¤¤ë¡£
postgres¥æ¡¼¥¶¡¼¤Ë¤Ê¤Ã¤Æ¡¢
$ createuser hori => ¤³¤ì¤ÏÀ®¸ù¡£
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢½êͼԡʤª¤è¤Ó¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¡Ë¤Î¤ß¤¬¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤ÆÊѹ¹¤ò²Ã¤¨¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¤Ç¤â¡¢Â¾¿Í¤¬¥ª¡¼¥Ê¡¼¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¤Æ¡¢¤½¤³¤Çɽ¤òºî¤Ã¤¿¤ê¤Ï¤Ç¤¤ë¡£
Chapter 6. ¥¯¥é¥¤¥¢¥ó¥Èǧ¾Ú
http://www.postgresql.jp/document/pg734doc/admin/client-authentication.html
¢£¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹
¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤¹¤ë¡£
# psql -U
postgres template1
...
template1=# ALTER USER ¥æ¡¼¥¶Ì¾ WITH PASSWORD '¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É';
ALTER ROLE
¢£¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤Îºï½ü
¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤òºï½ü¤¹¤ë¤Ë¤Ï¡¢dropuser¥³¥Þ¥ó¥É¤Ç¤è¤¤¡£
¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î´ÉÍý
¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºîÀ®
¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºîÀ®¤¹¤ë¤Ë¤Ï¡¢createdb¥³¥Þ¥ó¥É¤ò»ÈÍÑ¡£
¡Êpostmaster¤¬Æ°¤¤¤Æ¤¤¤Ê¤±¤ì¤Ðưºî¤·¤Ê¤¤¡£¡Ë
--------------------
$ cd /usr/local/pgsql/bin
$ ./createdb booksample
CREATE DATABASE
--------------------
¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¡¼Ì¾¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤Ë¤Ï¡¢createdb¥³¥Þ¥ó¥É¤Ë-U¥ª¥×¥·¥ç¥ó¤òÅϤ¹¡£
¾Êά¤¹¤ë¤È¸½ºß¤ÎOS¤Î¥æ¡¼¥¶¡¼Ì¾¤¬»È¤ï¤ì¤ë¡£
¥Ç¡¼¥¿¥Ù¡¼¥¹¤Îʸ»ú¥³¡¼¥É¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢-E¥ª¥×¥·¥ç¥ó¤Ç»ØÄê¡£
¾Êά¤¹¤ë¤È¡¢ASCII¤È¤Ê¤ë¡£
--------------------
$ ./createdb -E EUC-JP booksample2
CREATE DATABASE
--------------------
¢£¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î°ìÍ÷
¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò°ìÍ÷¤¹¤ë¤Ë¤Ï¡¢psql¥³¥Þ¥ó¥É¤Ë-l¥ª¥×¥·¥ç¥ó¤òÅϤ¹¡£
¼«Ê¬¤¬½êͼԤǤʤ¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤â°ìÍ÷ɽ¼¨¤µ¤ì¤ë¡£
--------------------
$ ./psql -l
List of databases
Name | Owner | Encoding
-------------+----------+-----------
booksample2 | hori | EUC_JP
template0 |
postgres | SQL_ASCII
template1 |
postgres | SQL_ASCII
(3 rows)
--------------------
¢£¥Ç¡¼¥¿¥Ù¡¼¥¹¤Îºï½ü
¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºï½ü¤¹¤ë¤Ë¤Ï¡¢dropdb¥³¥Þ¥ó¥É¤ò»ÈÍÑ¡£
¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¡¼Ì¾¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤Ë¤Ï¡¢createdb¥³¥Þ¥ó¥É¤ÈƱÍͤˡ¢-U¥ª¥×¥·¥ç¥ó¤òÅϤ¹¡£
--------------------
$ ./dropdb booksample
DROP DATABASE
--------------------
ref:
http://www.nslabs.jp/postgresql.rhtml
ctgr:
postgres