質問: 御世話になります。 TEST01というユーザーでオラクルに接続して下記のSQL文を実行したら 下記のエラーメッセージが出力されました。 [実行したSQL] SELECT * FROM DBA_ROLES; [出力されたエラーメッセージ] ORA-00942: table or view does not exist ネットで調べていたら「dba_ で始まるシステム表の検索は、権限が必要です」という記事を目にしました。 どの権限、またどのように付与すればいいのでしょうか。 ご存知の方がいましたらアドバイス宜しくお願いします。
回答: 検索できるようにするのは、他の方の回答でよいです。 しかし、ディクショナリには以下の種類があり、それぞれ参照可能な範囲が違ります。 dba_ :DB全体 all_ :自分の所有物及び権限付与された物 user_ :自分の所有物のみ 本当に「TEST01」というユーザにDB全体のディクショナリ情報を見せてもよいのでしょうか。そういう作業はDBA権限を持つ管理者ユーザでやるべきではないでしょうか。 また、ある処理でどうしてもDBA_XXXを参照しなければならないのであれば、個別のディクショナリにSelect権限を与えることで、権限を最小限にした方がよい気がします。