PostgreSQL

Last-modified: 2015-06-17 (水) 22:21:03

CSVで出力

psqlで、カラムをカンマ区切りで出力。

\pset format unaligned
\pset fieldsep ','
\o member.csv

ロール(ユーザー)

http://www.postgresql.jp/document/8.3/html/database-roles.html

psql コマンドでロール一覧を表示

\du

SQLで

SELECT rolname FROM pg_roles;

ロールを作る

sudo su postgres
createuser foo

psql でパスワードを設定する

\password   (自分のパスワードを設定する場合)
\password foo (fooのパスワードを設定する場合)

認証方法の設定

http://www.postgresql.jp/document/8.3/html/auth-pg-hba-conf.html

  • デフォルトはident (ロール名がUnixのアカウントと一致するものとして、Unixのアカウントの認証を利用して認証)
  • PostgreSQLに登録したパスワードで認証するには、方式として md5 や password を選択。passwordは認証時に平文でパスワードが流れる。md5 を使うべき。

pg_hba.confに認証方法を記述する。

どのホストからのアクセスであっても、ロールpgsqlについては、md5方式で認証する。

 host    all         pgsql       0.0.0.0/0             md5

なお、外部からの接続を受け付けるには、postgresql.confを編集して

 listen_addresses = '*'

psqlコマンド

パスワードを聞かれないようにする

http://www.postgresql.jp/document/8.3/html/libpq-pgpass.html

ページャー

\pset pager off

ページャーを無効にする

SQL

文字列の検索

http://www.postgresql.jp/document/8.3/html/functions-matching.html

foo LIKE '%ABC%'

%は0文字以上、 _ は1文字にマッチ

foo ~ '^(B|C)'

正規表現

foo ~* '^(B|C)'

正規表現、大文字小文字区別せず

排他制御の必要性

http://d.hatena.ne.jp/teematsu/20131223