![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
OcaleMasterにむけて勉強中です。
Oracle11.2をOracleLinux5にインストールして以下を行いました。
1.ユーザー「test」を作成。権限はconnectロールのみ。
2.sqlplusにtestでログイン(sqlplus test/***)
3.テーブル「t1」を作成/行移動を有効。
4.t1に対し挿入・更新を実行する。
5.flashback tableを実施すると以下のようなエラーが発生しました。
SQL> flashback table test.t1 to scn 1015246;
flashback table test.t1 to scn 1015246
*
行1でエラーが発生しました。:
ORA-00604: 再帰SQLレベル1でエラーが発生しました。 ORA-01031:
権限が不足しています。
6.testにflashback any tableシステム権限/sysdba権限を付与
7.sqlplusにtestで再度ログイン(sqlplus test/***)
8.flashback tableを実施するとやはり同様のエラーが発生しました。
9.sqlplusにsysdbaでtestで再度ログイン。(sqlplus test/*** as sysdba)
10.flashback tableを実施すると成功しました。
参考書などの記載を見る限り、基本的に自分のテーブルであれば権限は不要と思ったのですが(少なくともSYSDBAでないと不可というものではないはず!?)、No5、No8でエラーとなってしまったのは、どこに問題があったものでしょうか。
何か情報ありましたら教えてください。
No.1ベストアンサー
- 回答日時:
こんにちわ。
>どこに問題があったものでしょうか。
Oracle のマニュアル (SQL リファレンス) には、以下のように記載されています。
> 表を以前のSCNまたはタイムスタンプまでフラッシュバックするには、
> その表に対するFLASHBACKオブジェクト権限か、FLASHBACK ANY TABLE
> システム権限が必要です。 また、その表に対するSELECT、INSERT、DELETE
> およびALTERオブジェクト権限が必要です。
回答ありがとうございます。
私の方でもマニュアルの方は確認しまして、たとえば別ユーザー(FLASHBACKオブジェクト権限以外をtest.t1に付与。FLASHBACKのみない。)で以下を実行したところでは、直接エラーが発生しました。
SQL> flashback table test.t1 to scn 1015246;
flashback table test.t1 to scn 1015246
*
行1でエラーが発生しました。:
ORA-01031: 権限が不足しています。
対してtestでは再帰SQLにてエラーとなっています。
testユーザーはt1に対しては自所有のオブジェクトのため全オブジェクト権限を持っているはずですし、No8ではFLASHBACK ANY TABLEを付与しても発生したので、マニュアルに記載以外の条件が必要なのではと思った次第でした。
なお、その別ユーザーにFLASHBACK ANY TABLEを付与しても同様でした。
的外れかもしれませんが、ディクショナリ関連の権限が必要かと推測しています・・・。
他になにか情報ありましたら教えてください。
No.2
- 回答日時:
こんにちわ。
#1 のmuyodhid です。
> 1.ユーザー「test」を作成。権限はconnectロールのみ。
> 2.sqlplusにtestでログイン(sqlplus test/***)
> 3.テーブル「t1」を作成/行移動を有効。
Oracle 10.2 から、connect ロールにはCreate session System 権限しか
無くなった筈ので、Create table もできないはずです。
権限を付与したユーザとFlashback を実行しているユーザの権限を
再度確認した方が良いと思います。
以下、11.2 のセキュリティガイドのConnect ロールに関する説明です。
http://docs.oracle.com/cd/E16338_01/network.112/ …
この回答への補足
本件、原因は不明なままですが、いつの間にか実行できるようになっておりました。。。
関係ないと思いますが、実施した内容として大きなものはバックアップやファイル削除後のリカバリーなどを行っておりました。
若干すっきりしない点がありますが、回答いただきありがとうございました。
大変申し訳ありません、質問の文章が誤っておりました。
「1.ユーザー「test」を作成。権限はconnectロールのみ。」
と記載しましたが、実際にはCONNECT/MGMT_USER/OEM_MONITORの3つの権限がありました。
(以前、enterprise managerよりtestでインポート/エクスポートするとき、やはり権限関連でうまく動作せず、ロールを付与したり、どこかのサイトにのっていたストアドプロシージャを実行したりしました)
2,3,記載の通りt1は、test自身が作成したものになります。
また、念のためtestにさらにresourceロールを付与しましたが同様でした。
現在のtestの権限は以下の通りです。
ロール:CONNECT/MGMT_USER/OEM_MONITOR/RESOURCE(いずれもデフォルト)
システム権限:FLASHBACK ANY TABLE
オブジェクト権限:無し
たびたびお手数をおかけしますが、情報ありましたらよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL テーブル作成時のカラムについて 2 2022/08/27 21:48
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- JavaScript [再掲]指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードについて 1 2023/05/10 15:09
- Excel(エクセル) VBA ワークシート指定の1行目を選択をしたい 2 2022/08/20 18:10
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- UNIX・Linux Debianでシェルスクリプトにおいて正規表現の条件文で[[,]]が使えないので困ってます 2 2023/01/20 09:27
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ODBCリンクの際にACCESSでは読...
-
異なるスキーマのビューを元に...
-
Statement ignored というエラー
-
支配人の代理権
-
会社の〇〇部と〇〇課の違いっ...
-
Accessのマクロでモジュールを...
-
キャッシュを使わずにSELECTを...
-
エクセルVBAでUserFormを起動し...
-
ドメインの取得日を変更する方法
-
WHERE句の実行順序
-
PL/SQLでのSQL文法
-
callで順に実行されるプロシー...
-
DB2のSELECTでカンマ編集につい...
-
SELECT結果の縦と横の入れ替え
-
ALTER SESSIONについて
-
或るプロシージャの呼び出し元判定
-
TeXの索引作成に関して
-
Oracle10gのsql分についての質...
-
Transact-SQLでストアードプロ...
-
Accessでグローバル変数を宣言...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Statement ignored というエラー
-
ODBCリンクの際にACCESSでは読...
-
会社の〇〇部と〇〇課の違いっ...
-
別のスキーマのテーブルアップ...
-
権限で「委任」「専決」とあり...
-
異なるスキーマのビューを元に...
-
Oracle 10g 他スキーマの参照権...
-
DBMS_LOCK.SLEEPについて
-
トリガーにてビューを作成しよ...
-
テーブル権限確認
-
Poweruser権限でのIPアドレス変...
-
支配人の代理権
-
Oracle 10gで順序sequenceの作...
-
「セットアップはシステム管理...
-
Oracleでオブジェクト権限を調...
-
roleの権限確認方法
-
ストアドプロシジャで、TRUNCAT...
-
「バッチジョブとしてログオン...
-
oracleユーザーの権限確認方法...
-
参照権限の付与方法
おすすめ情報