我有一个Windows窗体桌面应用程序,它使用odp.net连接到Oracle数据库。该应用程序有多个用户连接到同一架构(该架构存储应用程序的用户表(。
该应用程序安装在每台客户端计算机上,包括Windows 7、8、10和11台式机。(不同地点和公司的500多家(
以下是打开连接的示例代码:
var connString = "Data Source=XE;User ID=ABC;Password=pass123";
using (var conn = new OracleConnection(connString))
{
conn.Open();
Console.WriteLine("Connected to Oracle" + conn.ServerVersion);
}
问题是,如果有人使用JetBrains dotPeek等工具反汇编代码,他们将能够读取数据库的用户和密钥。
我成功地使用oracle钱包将密码存储在应用程序代码之外,但钱包也是一个问题,因为任何访问客户端机器的人都可以轻松连接到我的oracle数据库。
如何安全连接还是安全地存储我的oracle凭据?有没有一种oAuth API可以将临时连接密钥返回到我的数据库?
为什么不在连接字符串中使用Integrated Security=true
,并让DBA处理用户身份验证