SQL*Plus Permission Denied

Sunday, February 6, 2011

After installing Oracle 11g Client on RHEL 5.4, I encountered a “permission denied” error while attempting to invoke SQL*Plus.  This occurred on two separate installations one 11gR1 and the other 11gR2.

First, the 11gR1 installation with the following symptoms:

Non-oracle user is trying to login to database via SQL*Plus, but attempts to access sqlplus result in a permission denied error.  Execution of sqlplus as oracle user works fine.

This is explained in Oracle Support Doc ID 1223449.1.

Cause
There is a lack of ‘read “r”‘ and ‘execute “x”‘ permissions on an upper directory which was not allowing access to sqlplus file.

Without execute permission on a directory, a user cannot access files in that directory even if they own them and have all permissions on them.

Solution
Add “r-x” permissions to “others” on upper directory (ex. /u01/app).

Following the recommendation above, I executed the commands below to successfully remediate the problem.

% cd /u01/app
% chmod 755 oracle

For the 11gR2 installation, I changed the permission as suggested, however the error below arises:

sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory

An explanation is provided in Oracle Support Doc ID 1206898.1.

Cause
The environment variable LD_LIBRARY_PATH was not set to include the 11g Client directory or the environment variable was set incorrectly.

Solution
Set the environment variable LD_LIBRARY_PATH to include the 11g Client directory.

Following the instructions mentioned above resolved my problems and all is functioning well.


32-bit Oracle Client on Linux x86-64 is *not* supported

Sunday, February 6, 2011

I mentioned in a previous post “32-bit Oracle Database server is *not* certified on Windows x64” the problem I encountered with attempting to install 32-bit Oracle on Windows.  Now I have encountered sort of the same problem only with 32-bit Oracle 11gR1 Client on Linux x86-64 (RHEL 5.4).  So again I post a personal reminder to myself.

When I installed the 32-bit Oracle 11gR1 Client, the installer raised an error in the linking phase.  Reviewing the installation log, I saw errors referring to “ld: cannot find -lxml11”.  Searched My Oracle Support and found Oracle Support Doc ID 549555.1.

Cause
The issue is caused by installation of 11g 32bit on a 64bit Linux Operating System.

Solution
Download and install 11g 64bit for Linux 64bit Operating System.

Also, upon reviewing Oracle Support Doc ID 1075717.1, it states:

  • The only release of 32-bit RDBMS Client software that will properly install on an x86_64 Linux OS system is 11.2.
  • 32-bit client software from any earlier Oracle Database release (9.2, 10.1, 10.2 or 11.1) is NOT supported and will NOT install on any x86_64 Linux OS system

However, according to the same support document, it appears 32-bit Oracle Instant Client could be installed.

In some specific situations, a customer may be directed to place 32-bit client libraries without “installing” 32-bit Client software.  The following method will  “place” (not “install”) only the 32-bit client libraries on x86_64 Linux.

  • The Oracle “Instant Client” product could be installed. This will have no executable binary files, and is accomplished by beginning an OUI (aka runInstaller) installation of the 32-bit Client software on x86_64 Linux. The key step is to choose the “Instant Client” installation “type”.

What started me down this road to discovery is we thought it was necessary to install the 32-bit Oracle Client for Documentum eContent Server 6.5 SP3.  We had seen forums indicating this was required on Windows 2008 environments.  However, for Linux x86-64, Oracle Client 64-bit was installed and eContent 6.5 SP3 worked without incident.