Pergunta

Estou tendo problemas com o DB2. Acabei de instalar o DB2 como um db2admin e com uma senha. Quando tento me conectar ao banco de dados, é o sucesso completo e, ao executar qualquer consulta selecionada simples, ele me dê o seguinte erro:-

DB2 SQL ERRO: SQLCODE = -204, SQLSTATE = 42704, SQLERRMC = db2admin.login, driver = 3,57,82

Eu tenho um banco de dados chamado onp e uma tabela chamada 'login' na qual há uma tabela chamada 'login' com dois campos nome de usuário e senha.

Consulta que estou correndo

  1. Selecione * no login; me dá erro

DB2 SQL ERRO: SQLCODE = -204, SQLSTATE = 42704, SQLERRMC = db2admin.login, driver = 3,57,82

  1. Selecione * no System.login; Me dá erro:- (// sistema é o nome do esquema)

DB2 SQL ERRO: SQLCODE = -551, SQLSTATE = 42501, SQLERRMC = DB2ADMIN; SELECT; System.login, Driver = 3,57,82

Eu tentei todos os recursos na rede e exausto completamente. Por favor me ajude

Foi útil?

Solução

Não sei muito sobre o DB2, mas olhando os códigos de erro ...

O primeiro erro é porque você não especificou um esquema, por isso não conseguiu encontrar a tabela de login.

SQLCode -204 Objeto não definido para DB2

Aparentemente, o DB2 exige que você especifique o nome do esquema ou parece no esquema com o mesmo nome do seu usuário de login.

Você deve usar SET SCHEMA ou qualifique totalmente o nome da tabela.

O segundo erro é porque você não tem privilégios para executar essa seleção:

SQLCode -551, Erro: não tem o privilégio de executar a operação no objeto

Não sei por que o usuário do db2admin não seria capaz de selecionar nesta tabela ...

Recursos:
Lista de sqlcodes db2

Outras dicas

Ocorreu o código SQL 551 porque o usuário de conexão não tem privilégios para executar operações.

Vá para o Control Center - vá para o grupo de usuários e objeta e selecione DB2Admin (suponha que este usuário seja o uso para conectar -se ao DB2)

enter image description here

Verifique toda a caixa de seleção como a seguinte

enter image description here

Concessão de acesso ao esquema ao usuárioenter image description here

Conceder tabelas de acesso ao usuárioenter image description here

Você também pode resolver o problema como:

Basta dar a autoridade adequada ao usuário pelo qual você está conexão com o DB2.

Eu tive o mesmo problema e o resolvi adicionando esquema na minha entidade:

@Entity
@Table(name="MyTable", schema="MySchemaName")
public class MyClass implements Serializable {
...
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top