This content has been marked as final. Show 4 replies
I think you're confusing ora-1013 "user requested cancel of operation" with ora-1031 "insufficient privileges".
1013 basically means the query took too long so the odbc driver cancelled it.
To resolve that:
a) You can disable query timeout in the DSN config,
b) make the operation go faster. Without knowing what the actual query that times out is, there are options like 'bind timestamp as date" and "bind number as float" that can change the explain plan for operations.
Hope it helps
Thank you for your response! I have gone down that road of treating it more like a 1031 instead of a 1013, solely because I can get results from using a DBA enabled account, and a non-DBA account gets the error. Same software, same hardware.
And for clarification, the timeout occurs right after the user provides their login information. It times out trying to provide the list of objects that they can link to in MS Access.
Maybe the DBA account barely squeaks in under the timeout since there is less security checking?
I am having the Windows Admins change the DSN entry and I will test it without the timeout enabled. Hopefully that will work!
Thank you again!
Hi Scott,1 person found this helpful
Usually MSAccess issues a SQLTables call to get a list of everything the user can attach to. A lot of times that query runs slow and exceeds timeout. I'm not too sure why it would run faster for DBA, which presumably would return more rows.
You might want to try it though, from sqlplus, as the two users to see if there's a difference. A 10046 would probably help to confirm the exact query, but it's probably this one:
select * from (select null table_qualifier, o1.owner table_owner, o1.object_name table_name, decode(o1.owner,'SYS', decode(o1.object_type,'TABLE','SYSTEM TABLE','VIEW', 'SYSTEM VIEW', o1.object_type), 'SYSTEM', decode(o1.object_type,'TABLE','SYSTEM TABLE','VIEW', 'SYSTEM VIEW', o1.object_type), o1.object_type) table_type, null remarks from all_objects o1 where o1.object_type in ('TABLE', 'VIEW') union select null table_qualifier, s.owner table_owner, s.synonym_name table_name, 'SYNONYM' table_type, null remarks from all_objects o3, all_synonyms s where o3.object_type in ('TABLE','VIEW') and s.table_owner = o3.owner and s.table_name = o3.object_name union select null table_qualifier, s1.owner table_owner, s1.synonym_name table_name, 'SYNONYM' table_type, null remarks from all_synonyms s1 where s1.db_link is not null) tables WHERE 1=1 AND (table_type = 'TABLE' OR table_type = 'SYSTEM TABLE' OR table_type = 'VIEW' OR table_type = 'SYNONYM' ) ORDER BY 4,2,3
Thank you for that information!
Changing the timeout value on the DSN fixed the issue, and the end-user is able to access his data again.