Reputation: 1392
At the moment I'm trying to make a connection to a local server. Connecting via, say, TOAD works fine. When I try to connect using .NET I get ora-12154. Which puzzles me, since I'm using the connectionstring from my TNSNAMES.ora file:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myPC)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
As follows:
private string connectionString = "Data Source=(DESCRIPTION ="
+" (ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST = myPC)(PORT = 1521)))"
+" (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = XE));"
+"User Id=sys;Password=zsxyzabc;";
Any ideas?
Upvotes: 0
Views: 1598
Reputation: 903
You may only be able to do this with the Oracle's .NET provider. That provider does support a "DBA Privilege=SYSDBA" setting in your connection string.
Why are you login with SYS user? It's dangerous, you may create a new user and connect with it. You may want to give any privileges you want. Try also this one :
string connString = "User Id=sys; Password=zsxyzabc; Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myPC)(PORT=1521))(CONNECT_DATA=(SERVER=dedicated)(SID=xe)))";
Upvotes: 0
Reputation: 146179
You are connecting as SYS. Therefor you need to include the SYSDBA privilege:
+"User Id=sys;Password=zsxyzabc;DBA Privilege=SYSDBA;";
It is bad practice to use the SYS account for regular application work, or even regular DBA work. But it is necessary sometimes, and when it is necessary we have to connect as sysdba
.
edit
It is a subtle one: you have a missing bracket at the end of the string!
private string connectionString = "Data Source=(DESCRIPTION ="
+" (ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST = myPC)(PORT = 1521)))"
+" (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = XE)));"
^
Having an IDE with bracket matching (I use TextPad) is a boon in these cases.
Upvotes: 1
Reputation: 33857
This is a great site for sorting out your connection string issues:
Upvotes: 0