如何使用 node-oracledb 连接到 LDAP 服务器?

How do you connect to an LDAP server using node-oracledb?

我有一个数据库,我可以使用 jdbc 使用字符串 "jdbc:oracle:thin@ldap://SERVER_NAME:1234/SERVICE,cn=OracleContext,dc-world".

连接到该数据库

然而,当我使用 node-oracledb 时,这个连接字符串不起作用,大概是因为 Node 没有使用 jdbc。我可以使用什么连接字符串连接到数据库?

没有可用于 LDAP 的“轻松连接”语法,因此您需要 配置 ldap.ora 和 sqlnet.ora 文件并使用非轻松连接 node-oracledb 中的字符串别名(或其他工具,如 SQL*Plus、PHP OCI8、Python cx_Oracle、Golang godror 等)。

我被告知 (!) 步骤是:

  1. 调用 netca -> 目录使用

  2. 通过 netca->Naming Methods Configuration 将命名配置为使用 LDAP。这为名称查找设置了 sqlnet.ora。

  3. 运行 netmgr 用于设置 ldap 或企业管理器中的条目以设置 ldap。

  4. 将这些文件复制到 运行 Node.js 计算机上的子目录,并将 TNS_ADMIN 设置为包含这些文件的目录。使用 Instant Client,您可以将它放在 Instant Client 库下的 network\admin 子目录中。请参阅手册条目 Optional Oracle Net Configuration

  5. 设置node-oracledb的connectString为3中配置的连接别名,例如“orcl”

为了使 ldap 连接正常工作,我必须执行以下操作:

在 oracle 客户端的 network/admin 文件夹中添加(这些由我的数据库管理员提供,but there are examples here:):

  • LDAP.ORA
  • sqlnet.ora

然后 connectString 只是服务名称,没有别的。因此,使用原始示例 jdbc:oracle:thin@ldap://SERVER_NAME:1234/SERVICE,cn=OracleContext,dc-world connectString 将只是 SERVICE