无法通过电子钱包从C连接到Oracle DB#
我正试图通过钱包连接到供应商的数据库。为此,供应商提供了一个钱包zip文件,其中包含两个文件(一个.ora文件和一个.sso文件)。zip文件包含tnsnames.ora和cwallet.sso 首先,我安装了Oracle客户端版本19.0 Home1,它自动创建了一个名为sqlnet.ora的文件。我将文件tnsnames.ora复制到sqlnet.ora创建的同一文件夹中,并尝试使用不同的wasys连接数据库,但每次尝试都失败了。我试图以类似的方式实现,这在本链接中有解释,但得到的错误是“TNS:失去联系”,“TNS:无法解析指定的连接标识符” 我尝试了指定的解决方案,但最终以错误告终。最后,现在的错误是“连接失败,因为目标主机或对象不存在”。连接详细信息在tnsnames中指定。包含服务名和主机名的ora。我在sqlnet.ora文件中添加了钱包位置,并添加了以下代码:无法通过电子钱包从C连接到Oracle DB#,oracle,Oracle,我正试图通过钱包连接到供应商的数据库。为此,供应商提供了一个钱包zip文件,其中包含两个文件(一个.ora文件和一个.sso文件)。zip文件包含tnsnames.ora和cwallet.sso 首先,我安装了Oracle客户端版本19.0 Home1,它自动创建了一个名为sqlnet.ora的文件。我将文件tnsnames.ora复制到sqlnet.ora创建的同一文件夹中,并尝试使用不同的wasys连接数据库,但每次尝试都失败了。我试图以类似的方式实现,这在本链接中有解释,但得到的错误是“T
SSL_CLIENT_AUTHENTICATION = FALSE
SSL_VERSION = 1.2
SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
SSL_SERVER_DN_MATCH = ON
C#中的连接代码如下:
//string strCon = "User Id =XXXX;Password=XXXXXXX;Data Source=(DESCRIPTION =(ADDRESS=(PROTOCOL=TCP)(HOST=XXXXXXXX)(PORT=2460))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX))" +
// "(SECURITY=(SSL_SERVER_CERT_DN='C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=mcsldb01.ckc6ued9hacf.ap-south1.rds.amazonaws.com')));";
using (OracleConnection con = new OracleConnection(strCon))
//using (OracleConnection con = new OracleConnection(@"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXXXXXX)(PORT=2460)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX)));User Id=XXXX;Password=XXXXXXXX;"))
//using (OracleConnection con = new OracleConnection(cntn))
{
using (OracleCommand cmd = con.CreateCommand())
{
try
{
//TNS_ADMIN and wallet directory entries can be entered in the app.config file.
con.Open();
Console.WriteLine("Successfully connected to Oracle Autonomous Database");
//Retrieve database version info
cmd.CommandText = "SELECT BANNER FROM V$VERSION";
OracleDataReader reader = cmd.ExecuteReader();
reader.Read();
Console.WriteLine("Connected to " + reader.GetString(0));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
}
请提出解决方案。我错在哪里?无法继续。猜测可能是一个连接钱包,而不是提供的SSL钱包,即只是一种隐藏用户名和密码的机制。如果是这种情况,连接将类似于:
new OracleConnection(@"Data Source=NAME_IN_TNSNAMES;User Id=/"))
其中,TNSNAMES中的NAME_映射到TNSNAMES.ora文件中的条目
这里有这样的例子(从SQL Plus的角度)
仅限SSL钱包。现在,经过多次尝试后,错误有所不同。现在错误是“解析钱包位置时SSL失败”。我试图实现解决方案[,但在提到的证书上未理解。此证书是否应由供应商提供?