させている
最近oracleRDS周りをよくやってるのですが
一つのRDSに複数ユーザー(スキーマ)を
入れる場合のもので、
スキーマ間でテーブル参照したり制約をつけてる場合がある。
*滅多にないケースなのでちょっとはまりました。
これは通常のoracleならSYSDBA権限を無理やりつけちゃえば
一発なのですが、RDSではつけらてもDBA権限までなのですが
それだけではだめでした。
Aユーザー(スキーマ)
Bユーザー(スキーマ)
があるとして
BユーザーからAユーザーのテーブルを絡む
制約をalterなどすると以下のエラーが発生
まずORA-00942
表またはビューが存在しません。
sqlplusで普通にbユーザーで入って
-----------------------------------------
select count(*) from a.hoge
-----------------------------------------
ってAユーザーのテーブル参照できるのになぜ?
参照したいテーブルにセレクトの権限つけてみた
-----------------------------------------
GRANT SELECT on a.hoge TO b;
-----------------------------------------
エラーが変わった??
ORA-01031: 権限が不足しています。
なんじゃ??
そこで REFERENCES(参照整合性制約)をつけてみる。
-----------------------------------------
GRANT SELECT,REFERENCES on a.hoge TO b;
-----------------------------------------
エラーなしに通った!!
ということで次にこのエラーに直面することは
滅多にないとおもうが、今度ははまらないだろう。。
参考になったページ
http://www.shift-the-oracle.com/oerrs/ora-00942.html
http://www.shift-the-oracle.com/privilege/
http://oracle.na7.info/4_2_role.html
いやっさせている
0 コメント:
コメントを投稿