Ruby で DBI で PostgreSQL

 
前回の続き。
違うユーザでコネクトできたから OKとしてましたが、実際テーブルの操作をしようとするとエラーになったので、対処。
[code]
# 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
[/code]
DBへは接続できるけど、テーブルをリードするパーミッションがないよと。
ま、当然ですね。DBの ownerと違うユーザでコネクトしてるんですから。じゃあ、パーミッションを出しておきます。
[code]
# psql test_db -U test_db_owner
> grant all on dtb_contact to test_user;
GRANT
[/code]
これで本当に OKです。

0 返信

返信を残す

Want to join the discussion?
Feel free to contribute!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です