I have 2 users in oracle database.
When I run this command, I can get 2 users have same name.
select * from v$pwfile_users;
The result as follow.
As you can see there are 2 C##user1.
2 C##user1 are different sysdba field.
I would like to remove C##user1 sysdba is true.
Thus I would like to remove the first user .
How can I remove the user?
Related
C> SQLPUS / AS SYSDBA
SQL> ALTER USER MYCONNECTION ACCOUNT UNLOCK;
// It says :
ERROR at line 1:
ORA-01918: user 'MYCONNECTION' does not exist
I also tried this by putting the username in lowercase but same thing happened again. I want to unlock the account.
Please help me ...
If you really created username using lower letter case (which means you enclosed it into double quotes), then you have to do the same always:
sqlplus "myconnection"/its_password#database
Or, if you want to unlock it, then
sqlplus / as sysdba
alter user "myconnection" account unlock;
Generally speaking, double quotes and mixed case in Oracle mean nothing but trouble. If you can, get rid of them. Forget they even exist.
Is there a way to find all user accounts in Oracle which have been created by me?
The SELECT * FROM ALL_USERS; returns all users in Oracle, but there seems to be no way of defining the 'owner' of the account (ORC_SYS would be nice) so I can add a clause like
'WHERE OWNER !+ 'ORC_SYS' or something.
Thanks in advance
KS
If its only the users created by oracle at install time you want to exclude you can properly do it filtering on user_id. Normally these users will have the lowest numbers:
Ajust the 35 to your installation.
Select * from dba_users where user_id > 35;
And if you are running 12c or above there is a column "Oracle_maintained" telling you if it is an oracle created user.
Select * from dba_users where oracle_maintained = 'N';
If you have access to dba_users and your Oracle's version is 12.1 and above, you can filter by oracle_maintained column.
Otherwise, there is no "official" way to distinguish between oracle internal users and your own.
There are some indirect ways, though:
Filter by all_users.created column. Mostly, internal users are created when the database is created, so your users will be after this date. You may find the database creation time in v$database.created .
Filter by all_users.user_id. As above, mostly, internal users are created when the database is created, so they get low user_id. There are some exceptions for several users like SYSBACKUP, SYSDG.
Both ways may produce incorrect results when internal users are created much later than the database creation - for example when an Oracle Option is reinstalled.
Should you try:
SELECT * FROM dba_users;
How do I access tables in my user schema in Sybase from Oracle?
In isql I can do
use mydb
go
How do I select from mydb tables from Oracle using dblink NITSYB5?
This does not work:
select count(*) from "mydb"."lon_client_confirm_exec"#NITSYB5;
Error:
ORA-00942: table or view does not exist
[Oracle][ODBC Sybase Wire Protocol driver][SQL Server]"mydb"."lon_client_confirm_exec" not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).
{42S02,NativeErr = 208}
ORA-02063: preceding 3 lines from NITSYB5
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
Error at Line: 3 Column: 30
NOTE: I don't work with Oracle and hence know nothing about Oracle's dblink, so fwiw ...
In Sybase ASE the fully qualified table name format is: <dbname>.<owner>.<table>
If you leave out the <owner> then the optimizer will first look for tables owned by the user running the query, then look for tables owned by dbo.
In your example it appears you've left out the <owner>. If the table is owned by your user or dbo then I'd suggest you try adding an additional period, eg:
select count(*) from mydb..lon_client_confirm_exec#NITSYB5;
NOTE: Add quotes as/if needed by Oracle's dblink.
SERVER 1 AND SERVER 2
open SSH server2 telnet server 1 host, its ok to done
su oracle
1) cd $ORACLE_HOME/bin
2) TNSPING database1 name
its ok done
create public database link
LINK_NAME
connect to
DB1USERNAME
identified by
111
using 'DB1NAME';
select * from dual#LINK_NAME, result x, finish.
while installing sap on 3 tiered architecture, I need to install database instance (oracle) and central instance(sap) and two different machines.
after completing database install and proceeding with central instance installation, the setup is trying to access a table and fails with following error
SELECT USERID, PASSWD FROM
SAPUSER WHERE USERID IN (:A0, :A1)
OCI-call failed with
-1=OCI_ERROR SQL error 942: 'ORA-00942: table or view does not exist'
*** ERROR => ORA-942 when
accessing table SAPUSER
so I checked and found out that two cases are possible
Table does not exist or
User has no access rights to this Table
next I checked for table, and found an entry in dba_tables,
SQL> select owner from dba_tables where table_name='SAPUSER';
OWNER
------------------------------
OPS$E64ADM
but when trying to fetch data from it using select query
SQL> select * from SAPUSER;
select * from SAPUSER
*
ERROR at line 1:
ORA-00942: table or view does not exist
now I am confused, whether the table is available or not. what is the reason for this and how can it be resolved?
It depends on where you are accesing the object from,
check to see which user you are logged in as
SQL> SHOW USER
This will show which user you are logged in as,
if you are in OPS$E64ADM, the directly query using
SQL> select * from SAPUSER;
if show user show anyother user you need privilege to access it from other users, can ask dba or if you have access then run,
SQL> grant select on OPS$E64ADM.SAPUSER to username; -- the username from which you want to access the table;
then, you can acces from the other user , using,
SQL> select * from OPS$E64ADM.SAPUSER
who are you signed in as? unless it's the owner of the table you will need to change your code to include the owner ie.
select * from OPS$E64ADM.SAPUSER
I am new to Oracle.
And I have come across a problem.
Firstly,I want to check the privileges of the sysman account:
SQL> select * from dba_sys_privs where grantee='sysman';
no rows selected
I know that it means there is no content in my view dba_sys_privs. But anyway,I have aready built a database. So, I try again, just shortening the statement:
SQL> select * from dba_sys_privs
2
So here are my two questions:
what happened to my database? I have already set up a database
what does the "2" mean? Does it mean the next row or something else?
You have entered a new line character (pressed return) without entering a statement termination i.e. ;. Compare your second statement with the first one you posted. So yes, the 2 means the client is awaiting further input.
To run the second statement, simply enter a slash /
As for why your first statement returned no rows, in Oracle database object names (including users) are in upper-case.
select * from dba_sys_privs where grantee='SYSMAN';
I encountered similar situaion due to my inserts did not work as expected. I used a insert statement followed by "commit;", it just says committed, but when I use sql developer to view the record, I could not find it. So I tried to run select from sqlplus and got a number.
Later DBA told me to skip the "commit", then I could see the exception thrown.