Nicht genügend Rechte Fehler mit DBMS_REDEFINITION.start_redef_table
Ich versuche, partition vorhandenen Tabellen ohne löschen und neu zu erstellen mit Oracle.
DBMS_REDEFINITION-Paket in meiner Oracle 10g-Unterstützung Anwendung
Habe ich alle erforderlichen Berechtigung für den Benutzer als pro erwähnt in der oracle-Dokument.
grant CREATE ANY TABLE to DDUSER;
grant ALTER ANY TABLE to DDUSER;
grant DROP ANY TABLE to DDUSER;
grant LOCK ANY TABLE to DDUSER;
grant SELECT ANY TABLE to DDUSER;
grant execute on dbms_redefinition to DDUSER;
Ich bin in der Lage, ausführen unten Verfahren
begin
Dbms_Redefinition.Can_Redef_Table('DDUSER', 'TABLE');
end;
This throws no error neither any result (Assuming this is as expected)
Aber wenn ich versuche zu laufen
BEGIN
DBMS_REDEFINITION.start_redef_table(
uname => 'DDUSER',
orig_table => 'TABLE',
int_table => 'TABLE_1');
END;
Erhalte ich folgende Fehlermeldung:
Fehlermeldung:
ORA-01031: Unzureichende Berechtigungen
ORA-06512: at "SYS.DBMS_REDEFINITION", line 50
ORA-06512: at "SYS.DBMS_REDEFINITION", Zeile 1343
ORA-06512: in Zeile 2
01031. 00000 - "Unzureichende Rechte"
Könnten Sie mir bitte helfen, Privileg, was ich hier vermisst?
oder wenn es eine Idee über die operation ausgeführt wird in Zeile 50 im Paket DBMS_REDEFINITION?
- Hast du
TABLE_1
bereits, bevor Sie laufenDBMS_REDEFINITION.start_redef_table
? - ja, es wurde bereits erstellt.
- Haben Sie schon Glück dazu? (d.h. ich stehe vor dem gleichen ...)
- Ich habe gerade entdeckt, dass Privilegien Anforderungen der Verfahren von DBMS_REDEFINITION-Paket unterscheiden zwischen oracle-db-Versionen. In der version 11.2.0.1 es erforderlich, eine Menge von
create any
global grants, während bei der version 11.2.0.4 ist nur erforderlichcreate
schema-local grants. - Ich bin auch immer die gleichen Fehler. Kann mir jemand von Euch helfen, mich zu lösen die gleichen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese:
Wenn die tabls enthält einen index (die meisten wahrscheinlich der Fall ist) haben Sie, neue Indizes zu erstellen.
Auf Oracle 12c gibt es zusätzliche system-Privileg "neu DEFINIEREN JEDE TABELLE'.
Dies funktioniert für mich.
Glück
Habe ich gerade konfrontiert dieses Problem. und ich war immer genau der gleiche Fehler auf start_redef_table.
Also nach der Suche eine Menge, die ich gab unten Rechte an Anwender-und es funktionierte.
grant execute on dbms_redefinition package to myuser
(Sie bereits)dann
Nachdem er diese Privilegien start_redef_table funktioniert perfekt.