PostgreSQL9でユーザーの追加からテーブル操作できるようにするまで

PostgreSQLはデータベースの所有者じゃないと色々面倒なことになるので以下のように作成する

psql -U postgres -c "CREATE ROLE {user} WITH LOGIN PASSWORD '{password}';"
createdb -U postgres -E UTF-8 {database} -O {user}
psql -U {user} -d {database} -f create.sql

データベース作成して、データを追加してからオーナー変更とか以下のようにやっても

createdb -U postgres -E UTF-8 {database}
psql -U postgres -d {database} -f create.sql
alter database {database} OWNER TO {user}

テーブルに対するアクセス権は変更されないので操作できません。