2017-03-21 4 views
1

Gibt es eine Möglichkeit, die Oracle Flashback on System Tabellen zu verwenden, wie die user_tables oder cols?Oracle Flashback auf Systemtabellen

Ich konnte erfolgreich Flashback-Abfragen für die Tabellen erstellen, die ich erstellt habe, aber wenn ich das gleiche für Systemtabellen versuchte, bekomme ich ORA-01031: insufficient privileges. Benötigt es besondere Privilegien?

Antwort

1

Dies wird erwartet, da die Ansicht, dass Ihre AS OF Abfrage von durch SYS, und verhindert ein Unternehmen basierend auf Systemtabellen zugreifen, wie flashback any table oder select any table durch die Zuwendungen zugegriffen wird.

Sie müssen O7_DICTIONARY_ACCESSIBILITY auf TRUE setzen, damit ein Benutzer Systemtabellen rückblenden kann.

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'); 

Getestet in Oracle 11.2.0.4.

Hinweis: Lesen Sie die Dokumentation, bevor Sie sie aktivieren.

Referenz:O7_DICTIONARY_ACCESSIBILITY

Verwandte Themen