1
user_tables
またはcols
など、Oracleフラッシュバック・システム表を使用できますか。システム表のOracleフラッシュバック
私が作成したテーブルに対してフラッシュバッククエリを正常に発行できましたが、システムテーブルに対して同じ試みをしたところ、ORA-01031: insufficient privileges
となりました。特権の付与が必要ですか?
user_tables
またはcols
など、Oracleフラッシュバック・システム表を使用できますか。システム表のOracleフラッシュバック
私が作成したテーブルに対してフラッシュバッククエリを正常に発行できましたが、システムテーブルに対して同じ試みをしたところ、ORA-01031: insufficient privileges
となりました。特権の付与が必要ですか?
これは、あなたがSYS
が所有するシステムテーブルに基づいてAS OF
クエリを使用してアクセスしている、とflashback any table
またはselect any table
などの助成金によってアクセスが防止されるビューとして、期待されています。
ユーザがシステムテーブルをフラッシュバックできるようにするには、O7_DICTIONARY_ACCESSIBILITY
〜TRUE
を設定する必要があります。
SQL> conn jay/jay
Connected.
SQL> SELECT * FROM user_tables
AS OF TIMESTAMP
TO_TIMESTAMP('2017-03-21 06:45:00', 'YYYY-MM-DD HH24:MI:SS');
SELECT * FROM user_tables
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;
System altered.
SQL> startup force
ORACLE instance started.
Total System Global Area 413372416 bytes
Fixed Size 2253784 bytes
Variable Size 327158824 bytes
Database Buffers 79691776 bytes
Redo Buffers 4268032 bytes
Database mounted.
Database opened.
SQL> conn jay/jay
Connected.
SQL> SELECT * FROM user_tables
AS OF TIMESTAMP
TO_TIMESTAMP('2017-03-21 06:45:00', 'YYYY-MM-DD HH24:MI:SS');
Oracle 11.2.0.4でテスト済みです。
注:有効にする前にマニュアルをお読みください。