英文:
NJS-116: password verifier type 0x939 is not supported by node-oracledb in Thin mode
问题
我正在尝试使用JavaScript在Node.js中连接Oracle数据库。
要求 - 我正在使用webdriverIo自动化UI,它使用Node.js和JS。在一个流程中,我需要连接Oracle数据库并通过自动化运行查询来获取值。
我尝试了一切,但每次都得到相同的响应。
我正在尝试使用Node.js和JS连接Oracle数据库。我正在使用VScode进行编码。
英文:
I am trying to connect Oracle db with node.js using javaScript.
requirement -I am automating UI using webdriverIo which uses node.js and JS .In one flow I need to connect with oracle DB and get the value by running the query through automation.
I tried everything but every time same response.
I am trying to connect oracle db ,using Nodejs and JS .I am using VScode for coding.
答案1
得分: 1
对于 Oracle 数据库 11gR2 或更早版本:
-
添加调用
initOracleClient()
以启用 node-oracledb Thick 模式 -
或者,您可以升级数据库。
对于 Oracle 数据库 12c 或更高版本:
-
要使用 Thin 模式,请参阅 Oracle 文档中有关 查找和重置使用 10G 密码版本的用户密码 的说明。简要概括如下:
-
确保数据库初始化参数
sec_case_sensitive_logon
不是 FALSE。在 SQL*Plus 中以 SYSDBA 运行show parameter sec_case_sensitive_logon
以检查该值。(请注意,在 DB 21c 中已经 删除了sec_case_sensitive_logon
)。 -
如果仍然出现错误,请重新生成密码,例如运行
ALTER USER x IDENTIFIED BY y
(如果需要)。
-
-
或者,您可以使用 Thick 模式。
英文:
For Oracle Database 11gR2 or earlier:
-
Add a call to
initOracleClient()
to enable node-oracledb Thick mode -
Alternatively you could upgrade the database.
For Oracle Database 12c or later:
-
To use Thin mode: see the Oracle documentation on Finding and Resetting User Passwords That Use the 10G Password Version. In summary:
-
Make sure the database initialization parameter
sec_case_sensitive_logon
is not FALSE. In SQL*Plus as SYSDBA, runshow parameter sec_case_sensitive_logon
to check the value.
(Notesec_case_sensitive_logon
has been removed in DB 21c). -
If the error still occurs, regenerate passwords e.g. run
ALTER USER x IDENTIFIED BY y
, if necessary.
-
-
Alternatively you could use Thick mode.
答案2
得分: 1
我面临着相同的问题,并在研究一段时间后发现在搭载 M1 处理器的 MacOS 上同时运行 typeorm@^0.3.17 和 oracledb@^6.0.3 存在一些问题。另外一个问题是 typeorm 使用了一个旧版本的 oracledb 包(^5.1.0)。希望开发者们能尽快更新版本,PR 已准备就绪,链接在这里 https://github.com/typeorm/typeorm/pull/10285
我认为一旦合并,问题就可以解决了
更新:
如果你和我一样使用的是搭载 M1 处理器的 Mac,请尝试这个指南
可能会有所帮助
英文:
I faced with the same problem and after some time researching it I found out that here's some problem running typeorm@^0.3.17 and oracledb@^6.0.3 together on MacOS with M1 onboard. Also the problem is that typeorm uses an old version of oracledb package (^5.1.0). Hope that developers would update the version soon, PR is ready here https://github.com/typeorm/typeorm/pull/10285
I think after it will be merged the issue could be fixed
UPD:
If you, like me, are using Mac on M1 processor try this guide
it could help
答案3
得分: 0
这个问题已经在https://github.com/oracle/node-oracledb/issues/1584中得到了解答。您的用户凭据分配给了一个不太安全的10G密码验证器。
Node-oracledb的Thin模式(v6.0.0及更高版本)支持11G及更高版本的密码验证器,这些更加安全。
要将您的密码验证器重置为在您的Oracle数据库中使用更安全的版本,请按照此处列出的步骤进行操作 - 重置Oracle数据库密码验证器。
英文:
This has been answered in https://github.com/oracle/node-oracledb/issues/1584. Your user credentials are assigned to a less secure 10G password verifier.
Node-oracledb's Thin mode (v6.0.0 and higher) supports 11G and higher password verifiers, which are more secure.
To reset your password verifier to use more secure versions in your Oracle Database, please follow the steps listed here - Resetting Oracle Database password verifiers.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论