そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

【Oracle】VIEW作成時にORA-01031権限が不足しています【対処法】

※[PR]当ブログの記事の中にはプロモーションが含まれています。

Oracle DatabaseでVIEW作成時に「ORA-01031: 権限が不足しています」エラーが発生したときの対処法

Oracle DatabaseでVIEWを作成しようとしたら、
「ORA-01031: 権限が不足しています」エラーが発生してしまいました。
実行ユーザーはテーブルの所有者なのに、何故?となってしまい悩んでしまったときの、 対処方法を紹介します。

OracleでVIEWを作成しようとしたときに「ORA-01031: 権限が不足しています」エラーになったときの対処方法です

本記事では、下記の内容を解説します。

  1. OracleでVIEWを作成するとき「ORA-01031: 権限が不足しています」エラーが起きたときの対処法
  2. ラクルデータベースのおススメの勉強法の紹介

この記事を書いている私は、某SIerに勤務しながら、WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。 私が実機で試したコマンドや画像を載せて書いています。 記事の信頼性担保に繋がると思います。

「ORA-01031: 権限が不足しています」エラー発生時の状態

実行したSQLとエラーメッセージ

自信が所有しているTABLEに対して、日本語名のVIEW表を作成しようとしました。

ORA-01031: 権限が不足しています
[FINDTUSER01@FINDTPDB] SQL>create or replace view TCD002科目マスタ (
  2  科目大分類番号,
  3  科目大分類名,
  4  科目中分類番号,
  5  科目中分類名,
  6  科目小分類番号,
  7  科目小分類名,
  8  登録日時,
  9  登録者,
 10  更新日時,
 11  更新者) as select
 12  KAMOKUDAINO,
 13  KAMOKUDAINAME,
 14  KAMOKUTYUNO,
 15  KAMOKUTYUNAME,
 16  KAMOKUSYONO,
 17  KAMOKUSYONAME,
 18  INSERT_DATE,
 19  INSERT_USER,
 20  UPDATE_DATE,
 21  UPDATE_USER from
 22  TCD002KAMOKUMST
 23  /
create or replace view TCD002科目マスタ (
                       *
行1でエラーが発生しました。:
ORA-01031: 権限が不足しています

実行ユーザーの権限・ロールの確認

[FINDTUSER01@FINDTPDB] SQL>select USERNAME, PRIVILEGE, ADMIN_OPTION from SYS.USER_SYS_PRIVS;

USERNAME      PRIVILEGE            ADM
------------- -------------------- ---
FINDTUSER01   UNLIMITED TABLESPACE NO
FINDTUSER01   CREATE SESSION       NO
[FINDTUSER01@FINDTPDB] SQL>select USERNAME, GRANTED_ROLE, ADMIN_OPTION from SYS.USER_ROLE_PRIVS;

USERNAME      GRANTED_ROLE         ADMIN_OPTION
------------- -------------------- ------------
FINDTUSER01   RESOURCE             NO
[FINDTUSER01@FINDTPDB] SQL>select ROLE, PRIVILEGE, ADMIN_OPTION from SYS.ROLE_SYS_PRIVS;

ROLE       PRIVILEGE            ADMIN_OPTION
---------- -------------------- -------------
RESOURCE   CREATE SEQUENCE      NO
RESOURCE   CREATE PROCEDURE     NO
RESOURCE   CREATE CLUSTER       NO
RESOURCE   CREATE TABLE         NO
RESOURCE   CREATE TRIGGER       NO
RESOURCE   CREATE TYPE          NO
RESOURCE   CREATE OPERATOR      NO
RESOURCE   CREATE INDEXTYPE     NO

8行が選択されました。

RESOURCEロール権限がついているので、VIEWも作成できると思っていたのですが、
RESOURCEロールには「CREATE VIEW」権限が入っていませんでした

権限の追加

PDBのローカル管理者ユーザーで、「CREATE VIEW」権限をユーザーに追加します。

grant CREATE VIEW to <ユーザー名>
[FINDTADM@FINDTPDB] SQL>grant CREATE VIEW to findtuser01
  2  /

権限付与が成功しました。
[FINDTUSER01@FINDTPDB] SQL>select USERNAME, PRIVILEGE, ADMIN_OPTION from SYS.USER_SYS_PRIVS;

USERNAME     PRIVILEGE            ADMIN_OPTION
------------ -------------------- -------------
FINDTUSER01  UNLIMITED TABLESPACE NO
FINDTUSER01  CREATE SESSION       NO
FINDTUSER01  CREATE VIEW          NO

権限追加後に再度、VIEW作成

権限追加後はVIEW作成に成功しました!

[FINDTUSER01@FINDTPDB] SQL>create or replace view TCD002科目マスタ (
  2  科目大分類番号,
  3  科目大分類名,
  4  科目中分類番号,
  5  科目中分類名,
  6  科目小分類番号,
  7  科目小分類名,
  8  登録日時,
  9  登録者,
 10  更新日時,
 11  更新者) as select
 12  KAMOKUDAINO,
 13  KAMOKUDAINAME,
 14  KAMOKUTYUNO,
 15  KAMOKUTYUNAME,
 16  KAMOKUSYONO,
 17  KAMOKUSYONAME,
 18  INSERT_DATE,
 19  INSERT_USER,
 20  UPDATE_DATE,
 21  UPDATE_USER from
 22  TCD002KAMOKUMST
 23  /

ビューが作成されました。

参考にしたサイト

www.shift-the-oracle.com

ラクルデータベースのおススメの勉強法の紹介

私は、某SIerに勤務しながら、入社以来10年以上、オラクルデータベースを使用したシステムに関わる仕事をしています。

ラクルデータベースについて、仕事場以外でも勉強をしたい、おススメの勉強法を知りたい、と考えている方のために、
①おすすめの書籍と、②おすすめのオンライン学習サイト、 を紹介します。

働きながら勉強するための、おススメの書籍とオンラインで学習できるサイトの紹介です

ラクルデータベースの勉強ができるおススメ書籍

朝の通勤時や帰宅時の電車の中や、社外打合せへの移動中などに勉強するなら、やはり書籍が一番だと思います。

Oracleの基本 ~データベース入門から設計/運用の初歩まで

技術エキスパートとして認定されたOracle ACEの渡部亮太さんの書かれた本です。

https://twitter.com/wrcsus4twitter.com

本書では、Oracle初心者/新人エンジニアが押さえておくべき知識とスキルを、現場で活躍するOracleエンジニアたちが、わかりやすく丁寧に解説。
Oracleの使い方はもちろん、データベースの基礎知識から、データ操作のためのSQL、テーブル設計、データベース運用/管理の基礎までしっかり押さえ、実務で使える入門スキルを身につけられます。
Oracleを学びたいすべての人に最適な入門書です。

Oracleの基本 ~データベース入門から設計/運用の初歩まで

プロとしてのOracleアーキテクチャ入門【第2版】

もう1冊、こちらもOracle ACEの渡部亮太さんの書かれた本です。

本書は、Oracle Databaseのアーキテクチャ(内部構成)について解説した入門書です。 本書の内容を理解することで「Oracleの動作の仕組み」を本質的に理解することができます。 これからOracleを使用する初心者の方から、実際にシステムの開発や運用管理を行っている DBエンジニアやシステムエンジニアの方を対象としています。

プロとしてのOracleアーキテクチャ入門【第2版】(12c、11g、10g 対応) 図解と実例解説で学ぶ、データベースの仕組み (Oracle現場主義)