前回の続き。
違うユーザでコネクトできたから OKとしてましたが、実際テーブルの操作をしようとするとエラーになったので、対処。
# ruby test.rb /usr/lib/ruby/gems/1.8/gems/dbd-pg-0.3.9/lib/dbd/pg/statement.rb:62:in `execute': ERROR: permission denied for relation dtb_contact (DBI::ProgrammingError) #irb > require 'rubygems' > require 'dbi' > dbh = DBI.connect("dbi:Pg:test_db:localhost", "test_user", "test_pass") > dbh.select_all("SELECT * FROM dtb_contact") {|row| p row } DBI::ProgrammingError: ERROR: permission denied for relation dtb_contact
DBへは接続できるけど、テーブルをリードするパーミッションがないよと。
ま、当然ですね。DBの ownerと違うユーザでコネクトしてるんですから。じゃあ、パーミッションを出しておきます。
# psql test_db -U test_db_owner > grant all on dtb_contact to test_user; GRANT
これで本当に OKです。