Cannot tnsping or connect locally except from root and oracle Linux accounts, but remote connections work
Posted on 2008-11-10
I just installed Oracle 11g on a new Fedora 9 Linux box. Everything installed fine. However, I am seeing some odd behavior that I can't figure out: I can tnsping and sqlplus (connect) perfectly from *remote* machines and from the root and oracle user accounts on the local box. However, whenever I try to tnsping or sqlplus to the database from any "normal" Linux user account it throws a "TNS-03505: Failed to resolve name" error. At first I thought it was invalid data in tnsnames.ora, but I have triple-checked it and plus I can connect just fine from the 'root' and 'oracle' accounts.
To summarize, here is what I am seeing ('shanadl' is the oracle service name):
1. Log in as 'dougb' on the local Linux box.
2. tnsping shanadl << ERROR: "TNS-03505: Failed to resolve name"
3. Log in as 'test' (which is another normal account) on the local Linux box.
4. tnsping shanadl << ERROR: "TNS-03505: Failed to resolve name"
5. Log in as 'oracle' on the local Linux box.
6. tnsping shanadl << WORKS!
7. Log in as 'oracle' on the local Linux box.
8. tnsping shanadl << WORKS!
9. Log in to any remote box (e.g., Windows or a different Linux box).
10. tnsping shanadl << WORKS! (granted, this uses a different tnsnames.ora file local to the client box)
In the past I have installed Oracle 8, 9i, and 10g instances and I have never seen this behavior. The fact that I can connect to the Oracle instance as root and the 'oracle' accounts but not from normal accounts makes me think this is some new security feature in Oracle 11g. However, Googling hasn't turned up anything. Why can't I connect from non-privileged Linux accounts? I'm really stumped here! Any advice is appreciated.