problema de conexión de DB2 con Java
Pregunta
Estoy teniendo un problema con DB2. Acabo de instalar el DB2 como db2admin y con una contraseña. Cuando intento conectar a la base de datos es el éxito total y mientras se ejecuta cualquier consulta de selección simple que me da el error siguiente: -
DB2 SQL Error: SQLCODE = -204, SQLSTATE = 42704, SQLERRMC = DB2ADMIN.LOGIN, DRIVER = 3.57.82
Tengo una base de datos llamada ONP y una mesa en la que se llama 'login' en el que hay una tabla llamada 'login' con dos campos de nombre de usuario y contraseña.
Consulta que estoy ejecutando
- Seleccionar * de inicio de sesión; da me error
DB2 SQL Error: SQLCODE = -204, SQLSTATE = 42704, SQLERRMC = DB2ADMIN.LOGIN, DRIVER = 3.57.82
- SELECT * FROM system.login; me da error: - (// sistema es el nombre de esquema)
DB2 SQL Error: SQLCODE = -551, SQLSTATE = 42501, SQLERRMC = DB2ADMIN; SELECT; SYSTEM.LOGIN, DRIVER = 3.57.82
He intentado todos los recursos en la red y agotado por completo. Por favor, ayudarme a
Solución
No sé mucho acerca de DB2, pero mirando hacia arriba los códigos de error ...
El primer error se debe a que no se ha especificado un esquema, por lo que no pudo encontrar la tabla de entrada.
SQLCODE -204 a objeto no definido a DB2
DB2 aparentemente requiere que se especifique el nombre de esquema o se ve en el esquema con el mismo nombre que el usuario de inicio de sesión.
Debe utilizar SET SCHEMA
o calificar totalmente el nombre de tabla.
El segundo error es debido a que no tiene los privilegios para realizar ese selecto:
SQLCODE -551, error: no tiene EL PRIVILEGIO para realizar la operación EN OBJETO
No estoy seguro de por qué el usuario db2admin no sería capaz de seleccionar de esta tabla ...
Recursos:
Lista de DB2 SQLCODE
Otros consejos
SQL CÓDIGO 551 producido debido a que el usuario que se conecta no tiene privilegios para realizar las operaciones.
Ir al Centro de Control - Ir al grupo de usuarios y de objetos y seleccionar DB2ADMIN (suponiendo que este usuario es el uso para conectarse a DB2)
presentarán todas las casilla de verificación de la siguiente manera
Acceso
Grant esquema para el usuario
Tablas conceder acceso al usuario
También puede resolver el problema ya que:
Sólo dar la autoridad adecuada para el usuario por el cual usted es la conexión a DB2.
Yo tenía el mismo problema y lo resolví mediante la adición de esquema en mi entidad:
@Entity
@Table(name="MyTable", schema="MySchemaName")
public class MyClass implements Serializable {
...
}