问题标签 [oracle-wallet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1027 浏览

c++ - 使用 Oracle Wallet 连接到 Pro C 中的数据库

我配置并测试了一个 Oracle Wallet。我有一个用 Pro C 编写的应用程序,需要使用钱包进行连接。我一直无法找到这方面的文档。寻找有关如何使用 Oracle Wallet 连接 Pro C 的任何信息。提前致谢。

斯科特

0 投票
3 回答
6407 浏览

java - JDBC预言机钱包连接

我在使用 oracle 钱包作为密码存储将我的 java 应用程序连接到 oracle 数据库时遇到问题。

为了隔离问题,我制作了一个小型 Main 类,如下所示:

在目录 c:\tns 我有以下文件:

这是 sqlnet.ora 的列表

对于 tnsnames

在 c:\wallet2 中有以下文件:

该文件以前是使用 orapki 生成的,并且我的条目名为 XE2 并具有正确的凭据。当我运行代码时,出现以下异常

启用 oracle 跟踪我可以看到这些行:

任何人都可以帮助我吗?谢谢阅读。河。

0 投票
1 回答
2146 浏览

scala - 无法使用 SSO 钱包将 Oracle 与 Apache Spark 连接

我们正在尝试使用在我们端配置的 SSO 钱包和 Apache Spark 连接到作为 AmazonRDS 运行的远程 Oracle 数据库。我们可以使用spark-shell如下所述的实用程序加载数据

使用添加到类路径的 jdbc 和 oraclepki jar 启动 spark shell

这是使用的 JDBC 网址:

下面是加载数据的 Spark jdbc 调用

但是当我们尝试使用spark-submit命令运行它时,我们会收到以下错误:

我对火花很陌生,可能在这里做错了什么。这就是我尝试配置配置的方式

下面是spark-submit使用的命令

也尝试添加

--conf 'spark.executor.extraJavaOptions=-Djavax.net.ssl.trustStore=/path/to/cwallet.sso -Djavax.net.ssl.trustStoreType=SSO'

--files /path/to/cwallet.sso,/path/to/tnsnames.ora

命令spark-submit,但没有任何运气。我到底在这里做错了什么?还尝试了这篇文章中提到的解决方案,但得到了同样的错误。我需要确定trustStore should be accessible on each executor node吗?如果是这种情况,那么为什么该spark-shell命令工作正常?这是否意味着 spark-cli 不包含任何工作节点来执行命令?

请指教

更新:

看起来您正在使用 12.1.0.2 的 JDBC 驱动程序。请升级到 18.3,您可以从 oracle.com/technetwork/database/application-development/jdbc/... 下载该版本。为了更方便地使用钱包,我们进行了一些更改。--@Jean de Lavarene

在遵循@Jean de Lavarene 建议的更改之后,摆脱了最初的错误,但下面是我现在得到的

当我在火花本地模式下运行它时:--master local[*]它工作正常但yarn模式失败。

我已经在使用--jars带有逗号分隔的 jar 列表的命令。我发现的是:

1)--jars期望路径是本地路径,然后将它们复制到 HDFS 路径
2)file:///在开始时使用不起作用
3)如果我没有指定--jars程序要求缺少 JDBC 驱动程序类的参数。一旦我指定ojdbc8.jar使用 --jars 错误就会消失并开始给出oraclepki.jar未找到的错误。我知道为什么会这样。
4)还尝试:在指定多个罐子时用作分隔符,但没有任何运气

更新 2

我能够oraclepki.jar通过使用解决未找到的异常

但是一旦我们进入该--master yarn模式,就会显示以下异常

根据我的理解,当它从工作节点启动作业时,cwallet.sso文件路径在这些节点上不可用。我们尝试为钱包指定 HDFS 路径,但实用程序希望在创建钱包时提供本地路径。

那么我们是否需要手动将钱包文件复制到所有工作节点?或者有没有更好的选择来实现这一目标?

请指教

0 投票
0 回答
116 浏览

oracle - 使用 Oracle Wallet 存储对称密钥

我可以使用 Oracle Wallet 存储和检索对称密钥吗?

例如通过DBMS_CRYPTO使用它们来加密/解密数据。

谢谢

0 投票
0 回答
182 浏览

scala - 如何将 Oracle Wallet 与 Sqoop 开发人员 API 结合使用

从命令行使用 Sqoop 时,我可以使用ASF 博客中描述的 Oracle Wallet,例如:

但是,在使用 Sqoop 的开发 API 时,我如何使用 Oracle Wallet,在执行类似...

...在旨在以编程方式自动执行多个 Sqoop 作业和 SparkSQL 查询的 Spark 作业中?

0 投票
1 回答
718 浏览

c++ - OCCI:使用 SSL 钱包身份验证连接到 OracleDB

我对 OracleDB 相当陌生。我正在考虑在不提供用户名和密码的情况下将客户端应用程序连接到服务器上的 Oracle DB。我的理解是否正确,这可以使用orapki钱包来实现?我正在使用我的笔记本电脑通过充当客户端和服务器来测试这一点。

我正在使用orapki为客户端和服务器端创建钱包,如下所示:

将证书从一侧加载到另一侧的钱包中。

显示钱包给出以下结果:

我从上面的理解是服务器和客户端现在相互信任,因此有利于建立连接。

服务器设置文件如下图:

tnsnames.ora

监听器.ora

sqlnet.ora

我有一个使用 OCCI 和设置文件的简单 C++ 测试客户端,如下所示

tnsnames.ora

sqlnet.ora

我的服务器监听服务状态如下图:

当我尝试使用连接字符串“ TCP_ACTIVE ”连接到服务器并提供用户名和密码时,我能够正常连接

“conn”中的连接似乎已经形成并且能够使用它来成功运行简单的查询。

但是当我尝试使用TCPS_ACTIVE连接字符串连接到服务器时,我只能在提供用户名和密码时才能连接。以下是我在未提供用户名和密码时收到的错误消息:

我很好奇是否可以使用钱包而不使用用户名和密码连接到服务器?如果是这样,我应该如何设置它以进行测试?

谢谢

PS:我已经研究过类似的问题,但我不明白设置是如何完成的。

0 投票
0 回答
1272 浏览

odp.net - Oracle.ManagedDataAccess.Client.OracleException: ORA-01017: 无效的用户名/密码;登录被拒绝

我在使用 ODP.NET 版本 19.3(可用的最新 Oracle 托管数据访问)使用安全外部密码存储 (SEPS) 连接到 Oracle 11g 时遇到问题,其中 Oracle 登录凭据存储在客户端 Oracle 钱包中。

如果我切换到经典的登录名/密码连接字符串,则数据库连接和命令没有问题。

此外,我报告所有其他使用经典 ODP 11(非托管 DataAccess)的 .net 应用程序在 SEPS 模式下连接都没有问题;事实上,我正在构建第一个使用 ODP.NET 19.3 和 SEPS 和 Oracle 钱包模式的案例。

为了我有:

  1. 为我们的应用程序创建了一个钱包(使用 mkstore utils)并将其放在服务器目录中:即

    C:\users\%APP_POOL_ID%\wallet

  2. 创建(对于所有应用程序)一个 sqlnet.ora 文件并将其放在服务器的 Oracle 主目录中:即

    %ORACLE_HOME%\网络\管理员

内容如下:

  1. 使用以下连接字符串:

    /li>

注意:用户 ID 和代理用户 ID 在连接字符串内用方括号指定。

这是我们获得的堆栈跟踪异常:

Oracle.ManagedDataAccess.Client.OracleException: ORA-01017: 无效的用户名/密码;登录被拒绝

在 OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd,布尔 bGetForApp,OracleConnection connRefForCriteria,字符串 affinityInstanceName,布尔 bForceMatch)

在 OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword,布尔 bGetForApp,OracleConnection connRefForCriteria,字符串 affinityInstanceName,布尔 bForceMatch)

在 OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs,PM conPM,ConnectionString pmCS,SecureStringsecurePassword,SecureStringsecureProxyPassword,OracleConnection connRefForCriteria)

在 Oracle.ManagedDataAccess.Client.OracleConnection.Open()

这是我通过<oracle.manageddataaccess.client>配置部分启用的跟踪的一部分:

此外,在另一个跟踪文件中,可以看到WriteOAuthMessage 将 BLANK 密码传递给 DB:

通过使用用户凭据登录服务器计算机并通过 sqlplus 命令测试与数据库的连接,我排除了问题是一个真正错误的登录名/密码。

谁能帮我?

非常感谢!

0 投票
4 回答
390 浏览

oracle - 基于 JDBC Oracle 钱包的连接:内存中的钱包文件夹

我想使用存储在内存中的钱包而不是将钱包存储在磁盘上来连接到 Oracle 数据库。

我尝试使用 Apache Common VFS 读取/写入内存中的文件。钱包被写入内存(以确保我什至将钱包文件夹从内存写入我的磁盘)。

当我尝试使用这些属性建立连接时,出现错误:

java.sql.SQLRecoverableException: IO Error: could not resolve the connect identifier DB_1222

PS:如果我将钱包放在磁盘上,我的代码可以正常工作。

0 投票
1 回答
125 浏览

oracle-wallet - 向 Oracle 钱包添加证书

钱包是否专用于我们创建它们的电脑?或者我可以将我的 ewallet.p12 文件移动到另一个客户端吗?

如果答案是“是的,为什么不呢?” 那你能看看下面吗?

我做了:

  • 在我可以找到合适的 oracle 客户端安装的电脑上创建 mijn_wallet
  • 将证书下载到文件夹
  • 将证书添加到 mijn_wallet

然后我尝试访问我从中获得证书的 https 网站。

但是,我不断收到相同的 sql 错误消息:证书验证失败

在此处输入图像描述

你有什么建议吗?非常感谢你。

0 投票
1 回答
440 浏览

oracle - 'ORA-46632: 基于密码的密钥库不存在' 但文件 ewallet.p12 存在

我正在使用 Oracle 12c,当我尝试使用以下命令创建自动登录密钥库时:

我收到此错误:

我检查了路径,并且密钥库的文件在那里。我也试过用这个路径,还是不行