Db2 Verbindungsproblem mit java
Frage
Ich habe Probleme mit DB2. Ich habe gerade die db2 als db2admin und mit einem Passwort. Wenn ich versuche, Verbindung zur Datenbank ist es Erfolg voll und während jede einfache Auswahlabfrage ausgeführt wird es geben Sie mir folgende Fehlermeldung: -
DB2 SQL-Fehler: SQLCODE = -204, SQLSTATE = 42704, SQLERRMC = DB2ADMIN.LOGIN, DRIVER = 3.57.82
Ich habe eine Datenbank mit dem Namen ONP und eine Tabelle in nannte es ‚login‘, in dem eine Tabelle dort genannt ist ‚login‘ mit zwei Feldern Benutzername und Passwort.
Abfrage, dass ich bin mit
- Select * from Login; gibt mir Fehler
DB2 SQL-Fehler: SQLCODE = -204, SQLSTATE = 42704, SQLERRMC = DB2ADMIN.LOGIN, DRIVER = 3.57.82
- Select * from system.login; gibt mir Fehler: - (// Systemschemaname ist)
DB2 SQL-Fehler: SQLCODE = -551, SQLSTATE = 42501, SQLERRMC = DB2ADMIN; SELECT; SYSTEM.LOGIN, DRIVER = 3.57.82
Ich habe alle Ressourcen versucht, auf dem Netz und völlig erschöpft. Bitte helfen Sie mir
Lösung
Ich weiß nicht viel über DB2 wissen, aber den Fehlercodes aufzuzublicken ...
Der erste Fehler ist, weil Sie kein Schema angegeben haben, so dass es nicht die Login-Tabelle gefunden.
SQLCODE -204 Objekt nicht auf DB2 definiert
DB2 erfordert, dass Sie offenbar die Schemanamen angeben, oder es sieht im Schema mit dem gleichen Namen wie Ihr Login-Benutzer.
Sie müssen SET SCHEMA
verwenden oder vollständig die Tabellennamen qualifizieren.
Der zweite Fehler ist, weil Sie, dass wählen Sie nicht die Privilegien ausführen:
SQLCODE -551, Fehler: nicht über Das Privileg PERFORM BETRIEB AUF OBJECT
Ich bin mir nicht sicher, warum die db2admin Benutzer nicht in der Lage sein würden, aus dieser Tabelle wählen ...
Ressourcen:
Liste der DB2 SQLCODEs
Andere Tipps
SQL-Code 551 ist aufgetreten, weil die Verbindungsbenutzerberechtigungen nicht müssen Operationen durchführen.
Zum Control Center - Gehe zu Benutzergruppen und Objekte und wählen Sie DB2ADMIN (unter der Annahme dieser Benutzer ist die eine Verwendung Verbindung zu DB2)
Überprüfen Sie alle Kontrollkästchen, wie das folgende
Grant-Schema Zugriff auf die Benutzer
Zugriff Berechtigungstabellen für den Benutzer
Sie können auch das Problem beheben, wie:
Nur gibt die entsprechende Berechtigung für den Benutzer, mit dem Sie Verbindung zu DB2 sind.
Ich hatte das gleiche Problem, und ich beschlossen, sie durch Zugabe von Schema in meiner Einheit:
@Entity
@Table(name="MyTable", schema="MySchemaName")
public class MyClass implements Serializable {
...
}