我想訪問一個Oracle數據庫(版本10.2.0.4.0)使用下面的代碼,但提供了「ORA-01005:給出的空密碼;登錄被拒絕」異常調用打開方法時的連接。ORA-01005錯誤連接ODP.Net
var connBuilder = new OracleConnectionStringBuilder();
connBuilder.DataSource = "(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = MyHost.Address)(PORT = ####)))(CONNECT_DATA =(SERVICE_NAME = MyService)))";
connBuilder.UserID = "validUserId";
connBuilder.Password = "validPassword";
connBuilder.PersistSecurityInfo = true;
var connString = connBuilder.ToString();
using (var con = new OracleConnection(connString))
{
con.Open();
}
如果我更改了用戶名,我會收到以下內容; 「ORA-01017:無效的用戶名/密碼;登錄被拒絕」,這也是如此,如果我改變與con.OpenWithNewPassword("validPassword");
連接上公開徵集如果我嘗試棄用的Oracle客戶端就沒有問題連接:
using (var depCon = new System.Data.OracleClient.OracleConnection
("Data Source=MyHost.Address:####/MyService;Persist Security Info=True;
User ID=validUsername;Password=validPassword;Unicode=True"))
{
depCon.Open();
}
我想(顯然)喜歡使用最新的Odp.Net驅動程序,但似乎無法通過這個問題。有沒有人有任何想法?
var connBuilder = new Common.DbConnectionStringBuilder();
connBuilder.Add("Data Source", "(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = MyHost.Address)(PORT = ####)))(CONNECT_DATA =(SERVICE_NAME = MyService)))";
connBuilder.Add("User Id", "validUserId");
connBuilder.Add("Password", "validPassword");
你使用哪個版本的ODP.NET的:
什麼是完整版本的Oracle數據庫?我相信只有終端10.2版本才支持。字符串生成器,只是用用戶名和密碼硬編碼連接字符串?如果刪除Persist Security Info = True; Unicode = True,會發生什麼情況? –
數據庫版本是「Oracle數據庫10g企業版版本10.2.0.4.0」 。刪除Persist Security和Unicode沒有任何變化,也沒有對連接字符串進行硬編碼。 我現在在想,需要在服務器上安裝某些東西來啓用ODP.net訪問,但無法找到任何文檔來支持此操作在此期間,我正在使用遺產(不建議使用)的驅動程序,它連接成功。 – KevD
你實際上是否提供密碼?或者你是否在嘗試使用類似操作系統身份驗證的地方,並將其留空? –