ファイヤープロジェクト
psql
2003-07-20T15:13+09:00   matsu
PostgreSQLのフロントエンドpsqlについて.
psqlはPostgresSQLのフロントエンドである.無論,リモートマシンからアクセスしたりもできる.
apt-get install postgresql-client
そして
psql -l
で,DB一覧を見る事ができる.
リモートマシンからアクセスするには,${PGDATA}/postgresql.confで
tcpip_socket = 1
として,TCP/IPでのアクセスを許可する.そして,${PGDATA}/pg_hba.confで
host         all         192.168.0.0  255.255.255.0       trust sameuser
などとする.
host
このレコードのタイプ.hostだとリモートホストに関する設定になる.
all
DB名
192.168.0.0
IP
255.255.255.0
ネットマスク
認証タイプ
identとかpamとかあるが,なんだかうまくいかなかったので,trustにしてみた.
sameuser
ユーザのマッピング.sameuserだと,リモートのユーザ名がそのまま使われる?ここで細かな設定をしたければ,${PGDATA}/pg_ident.confでマッピングを記述して,そのマッピング名をここに書く.
で,リモートマシンから
psql -h ホスト名 -l
などとすると無事アクセスできた.
私の環境ではLAN内には私しかいないので問題ないのだが,前述のtrustだとパスワード認証がない.パスワード認証には,以下がある.
password
パスワードファイル,通信ともにパスワードは暗号化されない.
md5
パスワードファイル,通信ともにパスワードは暗号化される.バージョン7.2以前と非互換.
crypt
パスワードファイル,通信ともにパスワードは暗号化される.バージョン7.2以前と互換.
pam
pamによる認証.
あとケルベロスとかあるけど,Debianパッケージではケルベロスでの認証をできるようにビルドしていないらしい.ここで,cryptによるパスワード認証をするようにしてみる.まず,hg_hba.confに書く.
host	     firstdb         192.168.1.1   255.255.255.0       crypt
そんで,ユーザpostgresでパスワードを登録する.
~$ psql firstdb
firstdb=# ALTER USER dbuser WITH PASSWORD 'hogefuga';
ALTER USER
firstdb=# SELECT * FROM pg_shadow ;
 usename  | usesysid | usecreatedb | usetrace | usesuper | usecatupd |  passwd  | valuntil 
----------+----------+-------------+----------+----------+-----------+----------+----------
 postgres |        1 | t           | t        | t        | t         |          | 
 dbuser   |      100 | f           | f        | f        | f         | hogefuga | 
(2 rows)
今回は既存のユーザのパスワード変更だったので,
ALTER USER ユーザ名 WITH PASSWORD パスワード;
だったが,新規ユーザの場合は,
CREATE USER ユーザ名 WITH PASSWORD パスワード;
である.で,pg_shadowはpg_userと並んでシステムテーブルというらしい.で,pg_userはpg_shadowのViewらしい.pg_userはDBの一般ユーザも見ることができるが,パスワードは****で表示される.
psql -U dbuser -h hostname firstdb
Password: 
firstdb=> SELECT * FROM pg_user;
 usename  | usesysid | usecreatedb | usetrace | usesuper | usecatupd |  passwd  | valuntil 
----------+----------+-------------+----------+----------+-----------+----------+----------
 postgres |        1 | t           | t        | t        | t         | ******** | 
 dbuser   |      100 | f           | f        | f        | f         | ******** | 
(2 rows)
matsu(C)
Since 2002
Mail to matsu