问题标签 [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.
c++ - 使用 Oracle Wallet 连接到 Pro C 中的数据库
我配置并测试了一个 Oracle Wallet。我有一个用 Pro C 编写的应用程序,需要使用钱包进行连接。我一直无法找到这方面的文档。寻找有关如何使用 Oracle Wallet 连接 Pro C 的任何信息。提前致谢。
斯科特
java - JDBC预言机钱包连接
我在使用 oracle 钱包作为密码存储将我的 java 应用程序连接到 oracle 数据库时遇到问题。
为了隔离问题,我制作了一个小型 Main 类,如下所示:
在目录 c:\tns 我有以下文件:
这是 sqlnet.ora 的列表
对于 tnsnames
在 c:\wallet2 中有以下文件:
该文件以前是使用 orapki 生成的,并且我的条目名为 XE2 并具有正确的凭据。当我运行代码时,出现以下异常
启用 oracle 跟踪我可以看到这些行:
和
任何人都可以帮助我吗?谢谢阅读。河。
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 路径,但实用程序希望在创建钱包时提供本地路径。
那么我们是否需要手动将钱包文件复制到所有工作节点?或者有没有更好的选择来实现这一目标?
请指教
oracle - 使用 Oracle Wallet 存储对称密钥
我可以使用 Oracle Wallet 存储和检索对称密钥吗?
例如通过DBMS_CRYPTO使用它们来加密/解密数据。
谢谢
scala - 如何将 Oracle Wallet 与 Sqoop 开发人员 API 结合使用
从命令行使用 Sqoop 时,我可以使用ASF 博客中描述的 Oracle Wallet,例如:
但是,在使用 Sqoop 的开发 API 时,我如何使用 Oracle Wallet,在执行类似...
...在旨在以编程方式自动执行多个 Sqoop 作业和 SparkSQL 查询的 Spark 作业中?
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:我已经研究过类似的问题,但我不明白设置是如何完成的。
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 钱包模式的案例。
为了我有:
为我们的应用程序创建了一个钱包(使用 mkstore utils)并将其放在服务器目录中:即
C:\users\%APP_POOL_ID%\wallet
创建(对于所有应用程序)一个 sqlnet.ora 文件并将其放在服务器的 Oracle 主目录中:即
%ORACLE_HOME%\网络\管理员
内容如下:
使用以下连接字符串:
/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 命令测试与数据库的连接,我排除了问题是一个真正错误的登录名/密码。
谁能帮我?
非常感谢!
oracle - 基于 JDBC Oracle 钱包的连接:内存中的钱包文件夹
我想使用存储在内存中的钱包而不是将钱包存储在磁盘上来连接到 Oracle 数据库。
我尝试使用 Apache Common VFS 读取/写入内存中的文件。钱包被写入内存(以确保我什至将钱包文件夹从内存写入我的磁盘)。
当我尝试使用这些属性建立连接时,出现错误:
java.sql.SQLRecoverableException: IO Error: could not resolve the connect identifier DB_1222
PS:如果我将钱包放在磁盘上,我的代码可以正常工作。
oracle - 'ORA-46632: 基于密码的密钥库不存在' 但文件 ewallet.p12 存在
我正在使用 Oracle 12c,当我尝试使用以下命令创建自动登录密钥库时:
我收到此错误:
我检查了路径,并且密钥库的文件在那里。我也试过用这个路径,还是不行