2017-03-21 11 views
1

user_tablesまたはcolsなど、Oracleフラッシュバック・システム表を使用できますか。システム表のOracleフラッシュバック

私が作成したテーブルに対してフラッシュバッククエリを正常に発行できましたが、システムテーブルに対して同じ試みをしたところ、ORA-01031: insufficient privilegesとなりました。特権の付与が必要ですか?

答えて

1

これは、あなたがSYSが所有するシステムテーブルに基づいてAS OFクエリを使用してアクセスしている、とflashback any tableまたはselect any tableなどの助成金によってアクセスが防止されるビューとして、期待されています。

ユーザがシステムテーブルをフラッシュバックできるようにするには、O7_DICTIONARY_ACCESSIBILITYTRUEを設定する必要があります。

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でテスト済みです。

注:有効にする前にマニュアルをお読みください。

参考文献:O7_DICTIONARY_ACCESSIBILITY

関連する問題