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.