Consultor Eletrônico



Kbase 35194: Erro Progress 1436 com Dataserver Oracle
Autor   Marco Aurelio Scheidt - CAT
Acesso   Público
Publicação   1/2/2007
Erro:
Table or view does not exist or cannot be accessed. (1436)

Causa:
- Falta de permissão para acesso a um objeto Oracle, (table, index, sequence) que foi referenciado em um acesso direto pelo comando SEND-SQL-STATEMENT.

- Programas que utilizam views do Oracle (v$session) nas quais normalmente os usuários não possuem permissão.

Solução:

Sugerimos a criação de uma ROLE para que seja atribuída a todos os usuários Oracle configurados para o Datasul.

1) Os comandos abaixo criam a role e atribuem privilégios a mesma. Para essa criação utilizar o usuário sys do Oracle.

CREATE ROLE DATASUL;
GRANT ALTER SYSTEM TO DATASUL;
GRANT CREATE SEQUENCE TO DATASUL;
GRANT CREATE SESSION TO DATASUL;
GRANT CREATE TABLE TO DATASUL;
GRANT SELECT ANY DICTIONARY TO DATASUL;
GRANT SELECT ANY TABLE TO DATASUL;
GRANT SELECT ANY SEQUENCE TO DATASUL;
GRANT SELECT ON SYS.ARGUMENT$ TO DATASUL;
GRANT SELECT ON SYS.COL$ TO DATASUL;
GRANT SELECT ON SYS.COM$ TO DATASUL;
GRANT SELECT ON SYS.CON$ TO DATASUL;
GRANT SELECT ON SYS.DUAL TO DATASUL;
GRANT SELECT ON SYS.ICOL$ TO DATASUL;
GRANT SELECT ON SYS.IND$ TO DATASUL;
GRANT SELECT ON SYS.LINK$ TO DATASUL;
GRANT SELECT ON SYS.OBJ$ TO DATASUL;
GRANT SELECT ON SYS.PROCEDURE$ TO DATASUL;
GRANT SELECT ON SYS.SEQ$ TO DATASUL;
GRANT SELECT ON SYS.SYN$ TO DATASUL;
GRANT SELECT ON SYS.TAB$ TO DATASUL;
GRANT SELECT ON SYS.TS$ TO DATASUL;
GRANT SELECT ON SYS.USER$ TO DATASUL;
GRANT SELECT ON SYS.VIEW$ TO DATASUL;
GRANT CONNECT TO DATASUL;
GRANT RESOURCE TO DATASUL;

2) Feita a criação tem que conceder aos usuários a role criada, exemplo:

GRANT DATASUL TO EMS2CAD;

IMPORTANTE: necessário atribuir as permissões para todos os usuários que conectam no Datasul.