Links
Home
Oracle DBA Forum
Frequent Oracle Errors
TNS:could not resolve the connect identifier specified
Backtrace message unwound by exceptions
invalid identifier
PL/SQL compilation error
internal error
missing expression
table or view does not exist
end-of-file on communication channel
TNS:listener unknown in connect descriptor
insufficient privileges
PL/SQL: numeric or value error string
TNS:protocol adapter error
ORACLE not available
target host or object does not exist
invalid number
unable to allocate string bytes of shared memory
resource busy and acquire with NOWAIT specified
error occurred at recursive SQL level string
ORACLE initialization or shutdown in progress
archiver error. Connect internal only, until freed
snapshot too old
unable to extend temp segment by string in tablespace
Credential retrieval failed
missing or invalid option
invalid username/password; logon denied
unable to create INITIAL extent for segment
out of process memory when trying to allocate string bytes
shared memory realm does not exist
cannot insert NULL
TNS:unable to connect to destination
remote database not found'>ora-02019
exception encountered: core dump
inconsistent datatypes
no data found
TNS:operation timed out
PL/SQL: could not find program
existing state of packages has been discarded
maximum number of processes exceeded
error signaled in parallel query server
ORACLE instance terminated. Disconnection forced
TNS:packet writer failure
see ORA-12699
missing right parenthesis
name is already used by an existing object
cannot identify/lock data file
invalid file operation
quoted string not properly terminated
os_authent_prefix

os_authent_prefix

2006-07-25       - By Jared Still

Reply:     1     2     3     4     5     6     7  

Comments inline:

Hello everyone,
>
> I use Oracle 10g R2 on Fedora Core 4, and I use password file.
>
> The value of "os_authent_prefix" is "ops$", (default) and the os user that
> I'm able to login with it as sysdba using os authentication is named
> "oracle". (connect "/ as sysdba")
>
> I've created a user in my database named ops$oracle with the code bellow:
>
> create user ops$oracle identified by secret;
> grant create session, dba to ops$oracle;
>

I've created the same user on  10g R1 on a Linux server.
The os_authent_prefix = ops$. Close, but not quite the same environment.

I can connect as sysdba from a remote windows client like this:
> sqlplus "ops$oracle/secret@(protected) as sysdba"
>

I cannot.  I would not expect to be able to unless SYSDBA were granted.

Perhaps you should run the following query to see if sysdba was granted to
ops$oracle:

 select * from v$pwfile_users;

The fact that you can logon as sysdba from a windows client suggests that
indeed
there is an entry for ops$oracle in v$pwfile_users.  The fact that you
cannot do
so through sqlnet on the server suggests otherwise.

Does testdb resolve to the same database on both client and server?

In addition, the ops$ prefix is required for users that authenticate
externally.
The ops$oracle account you have created is not such an account.  To create
an externally identified account requires this:

 create user ops$oracle identified externally;

The only way to login to that account would be to logon to the server as
'oracle'
and using this command:

 sqlplus /

Unless of course remote_os_authent=true, in which case anyone from any
workstation on the network with admin privileges on the workstation
could then logon as ops$oracle.  Probably not what you want.

sqlplus "ops$oracle/secret@(protected) as sysdba"
>

This is the expected result.


sqlplus "ops$oracle/secret as sysdba".
>

The linux account you are starting the session with is in the dba group.
It doesn't matter what user you login as, or even if the user exists.

Try this:

  sqlplus "bugsbunny/daffyduck as sysdba"


My underestanding is if I want to connect locally and I use tnsname in the
> connection command, oracle will interpret it differently.
>
> Could anyone make this clear for me that why oracle acts differently,
> please?
>


In a nutshell, the username/password are ignored for sysdba access
when logging on locally.

The user on the linux server has sysdba authentication enabled through
inclusion in the dba group.

Further explanation would require reading the docs.
I will let you do that.  :)
http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14220/security
.htm#i12336


--
Jared Still
Certifiable Oracle DBA and Part Time Perl Evangelist

Comments inline:<br><br><div><span class="gmail_quote"></span><blockquote class
="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt
0pt 0.8ex; padding-left: 1ex;"><div>Hello everyone,<br><br>I use Oracle 10g R2
on Fedora Core 4, and I use password file.
<br><br>The value of &quot;os_authent_prefix&quot; is &quot;ops$&quot;,
(default) and the os user that I'm able to login with it as sysdba using os
authentication is named &quot;oracle&quot;. (connect &quot;/ as sysdba&quot;)
<br><br>I've created a user in my database named ops$oracle with the code
bellow:<br><br>create user ops$oracle identified by secret;<br>grant create
session, dba to ops$oracle;</div></blockquote><div><br>I've created the same
user on&nbsp; 10g R1 on a Linux server.
<br>The os_authent_prefix = ops$. Close, but not quite the same environment.<br
></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204
, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>
I can connect as sysdba from a remote windows client like this:
<br>sqlplus &quot;ops$oracle/secret@(protected) as sysdba&quot;</div></blockquote>
<div><br>I cannot.&nbsp; I would not expect to be able to unless SYSDBA were
granted.<br><br>Perhaps you should run the following query to see if sysdba was
granted to ops$oracle:
<br><br>&nbsp; select * from v$pwfile_users;<br><br>The fact that you can logon
as sysdba from a windows client suggests that indeed<br>there is an entry for
ops$oracle in v$pwfile_users.&nbsp; The fact that you cannot do<br>so through
sqlnet on the server suggests otherwise.
<br><br>Does testdb resolve to the same database on both client and server?<br>
<br>In addition, the ops$ prefix is required for users that authenticate
externally.<br>The ops$oracle account you have created is not such an account.
&nbsp; To create
<br>an externally identified account requires this:<br><br>&nbsp; create user
ops$oracle identified externally;<br></div><br>The only way to login to that
account would be to logon to the server as 'oracle'<br>and using this command:
<br><br>&nbsp; sqlplus /<br><br>Unless of course remote_os_authent=true, in
which case anyone from any<br>workstation on the network with admin privileges
on the workstation <br>could then logon as ops$oracle.&nbsp; Probably not what
you want.
<br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204,
204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>sqlplus &quot
;ops$oracle/secret@(protected) as sysdba&quot;</div></blockquote><div><br>
This is the expected result.<br>&nbsp;<br></div><br><blockquote class="gmail
_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0
.8ex; padding-left: 1ex;"><div>sqlplus &quot;ops$oracle/secret as sysdba&quot;.
</div></blockquote><div><br>The linux account you are starting the session with
is in the dba group.<br>It doesn't matter what user you login as, or even if
the user exists.<br><br>Try this:<br><br>&nbsp;&nbsp; sqlplus &quot;bugsbunny
/daffyduck as sysdba&quot;
<br><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid
rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>My
underestanding is if I want to connect locally and I use tnsname in the
connection command, oracle will interpret it differently.
<br><br>Could anyone make this clear for me that why oracle acts differently,
please?</div></blockquote><div><br><br>In a nutshell, the username/password are
ignored for sysdba access<br>when logging on locally.<br><br>The user on the
linux server has sysdba authentication enabled through
<br>inclusion in the dba group.<br><br>Further explanation would require
reading the docs.<br>I will let you do that.&nbsp; :)<br><a href="http:/
/download-west.oracle.com/docs/cd/B19306_01/server.102/b14220/security.htm
#i12336">
http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14220/security
.htm#i12336</a><br><br></div><br></div>-- <br>Jared Still<br>Certifiable Oracle
DBA and Part Time Perl Evangelist<br>