Login from Non-Oracle User Run SQL*Plus

In Linux or Unix platform, installed SQL*Plus in database server can be executed by anyone.

We just need to make the tnsnames.ora file readable by others.

TNSNAMES Readable

[oracle@test ~]$ chmod o+r $ORACLE_HOME/network/admin/tnsnames.ora

After this just login to the user you want to login the database and set the environment by .oraenv and providing the SID.

[root@sql ~]# su - test
Last login: Tue Aug 22 11:53:14 UTC 2023 on pts/0
[test@sql ~]$
[test@sql ~]$
[test@sql ~]$
[test@sql ~]$ . oraenv
ORACLE_SID = [test] ?
ORACLE_BASE environment variable is not being set since this
information is not available for the current user ID test.
You can set ORACLE_BASE manually if it is required.
Resetting ORACLE_BASE to its previous value or ORACLE_HOME
The Oracle base has been set to /u01/app/oracle/product/19.3/db_home
[test@sql ~]$
[test@sql ~]$
[test@sql ~]$ sqlplus

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Aug 22 11:53:47 2023
Version 19.20.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Enter user-name: system
Enter password:
Last Successful login time: Tue Aug 22 2023 09:04:05 +00:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0

SQL>