it-swarm.com.de

ORA-01031 Unzureichende Berechtigungen beim Erstellen einer Ansicht?

Wenn ich versuche, eine Ansicht zu erstellen, die verschiedene Tabellen enthält, erhalte ich die folgende Fehlermeldung: Fehler in Zeile 1: ORA-01031 Unzureichende Berechtigungen. 

Könnte mir jemand sagen, was das Problem sein könnte. Ich habe versucht, dem anderen hier erwähnten Stackoverflow-Post zu folgen, aber er bezieht sich auf verschiedene Schemata. 

ORA-01031: Unzureichende Berechtigungen bei Auswahl der Ansicht

Bitte lass es mich wissen, da ich hier neu bin.

Meine Abfrage lautet wie folgt:

ORiginal-Frage: Erstellen Sie eine Ansicht, um die Mitarbeiter-ID, den Mitarbeiternamen, das Einstellungsdatum und die Abteilungsnummer auszuwählen.

MEINE LÖSUNG: 

CREATE VIEW SIMPVIEW AS
SELECT EMPNO, ENAME, HIREDATE,DEPTNO
FROM EMP;
7
Tan

Dann haben Sie möglicherweise nicht die Berechtigung, den Befehl CREATE VIEW in Ihrem Datenbankschema auszuführen. Melden Sie sich beim SYSDBA-Konto an und geben Sie den Befehl aus 

GRANT CREATE VIEW TO <dbusername>;

Hier sollte <dbusername> durch den Namen des Benutzers ersetzt werden, dem Sie Zugriff auf den CREATE VIEW-Befehl gewähren möchten.

4
Arul Christo

Sie können prüfen, ob Ihr Benutzer über VIEW Erstellungsberechtigungen verfügt, indem Sie select * from session_privs verwenden.

Um eine Ansicht erstellen zu können, müssen dem Benutzer, der sie erstellt, SELECT-Berechtigungen für alle verwendeten Objekte sowie das genannte CREATE VIEW-Privileg erteilt werden. Sie können dies auch überprüfen, indem Sie nach USER_TAB_PRIVS fragen, wobei der Benutzer den Fehler abruft.

2
listik

als ich die obige Abfrage in SQL-Entwickler ausführen wollte, hatte ich Probleme, da ich nicht über die erforderlichen Berechtigungen verfügte, um eine Ansicht oder ein anderes Oracle-Objektschema wie Trigger, Pakete, Prozeduren usw. zu erstellen : ORA-01031 Unzureichende Berechtigungen “. Ich brauchte also alle Privilegien, um all diese Abfragen und Programme zu üben. Ich habe folgende Schritte unternommen, um mein Problem zu lösen:

  1. Da ich mich als Benutzername "scott" angemeldet habe, lautet mein Name "scott" nicht "Dhruv". Mein Ziel war es, mir alle Privilegien zu gewähren, d. H. Dem Benutzer "scott". 
  2. Dafür muss ich mich als DBA in die Datenbank eintragen. Nun ist die Frage! So melden Sie sich als DBA an. Dafür habe ich den Befehl Prompt geöffnet und mich in der Datenbank als sysdba angemeldet, indem ich die folgenden Schritte befolge: 

a) Beim Fensterlauf habe ich cmd eingegeben, um den Befehl Prompt zu öffnen. Ich habe Folgendes eingegeben: sqlplus/nolog, was bedeutet, dass ich mich angemeldet habe, ohne die erforderlichen Anmeldeinformationen anzugeben.
b) Ich habe mich für mein zugrundeliegendes O/S authentifiziert und als DBA in die Datenbank eingetragen. Dafür habe ich den Befehl Prompt: connect/as sysdba; Eingegeben. C) Ich habe ausgewertet, wer der DBA-Benutzer in meiner Datenbank ist, wenn er existiert. Dafür habe ich Folgendes eingegeben: Name aus V $ -Datenbank auswählen; d) Hier gehen wir diesem Befehl nach. Schließlich habe ich mir selbst (Scott) die Erlaubnis erteilt, View in SQL Developer zu erstellen, indem Sie den folgenden Befehl eingeben: Grant Create View to Scott; E) Schließlich habe ich mir alle Privilegien gewährt, indem ich Folgendes eingebe: 

Momentaufnahme des Befehls Prompt: Ich habe angehängt. 

Schließlich habe ich meine Ansicht ausgeführt und erstellt: Ich habe angehängt

0
Dhruv Das

Sie müssen dem Benutzer ein beliebiges Tabellenprivileg zuweisen. Dann wird die Ansicht erfolgreich kompiliert. Sie müssen dem Benutzer keine Auswahl für alle Objekte explizit erteilen.

0
Kapila