ORA-01301 insufficient privileges シノニム見えない

OracleDB, トラブルシューティング, バックエンド

 

JavaScript

ORA-01301 とは

ORA-01301 insufficient privilegesとは、日本語では「権限が不足しています」というOracleのエラーです。文字通りの内容なのですが、「SELECT」にしろ「INSERT」にしろ操作をする上での「権限」が「足りない」のです。※SQLが間違えてるとか、そんな類の話じゃないです。

よくあるパターン

「OS認証でSYSDBA接続しようとしての失敗」ですが、こちらの件については色々なサイト様で説明されているので、他サイトを確認してみてください

はまるパターン

特定のテーブルとかシノニムに対して、「SELECT」を実行するとORA-01301が出るパターン。
全体的にNGな時もあれば、このテーブル、このシノニムだけ見れないよ!?という感じです。

ずばり、「GRANT漏れ」「GRANT誤り」です。
(他のテーブルも見れないときは、利用ユーザー誤りもありえますね。)

テーブル作成やシノニム作成用のDDL(SQL)を流した後で、GRANT忘れていませんか?

GRANTとは、「権限付与」コマンドですね。テーブル作って、シノニム作って、権限つけて。ってのが綺麗な感じですが、「複数環境×複数ユーザ」なんて時には、流すSQLを間違えたパターンですね。
(一部のテーブルやシノニムが見えるために、原因特定に時間がかかってしまうんですよね。)

最後に

何もやってないのに―。という時は、他の誰かが何かをしているのでしょうね。
そして、そんな地雷を埋めた人はパパっと帰っていない。という……。

DROPして、CREATEして。 って、それだけじゃアプリは動かない。

スポンサーリンク