【发布时间】:2015-11-06 18:30:19
【问题描述】:
我有一个数据库,我可以使用字符串“jdbc:oracle:thin@ldap://SERVER_NAME:1234/SERVICE,cn=OracleContext,dc-world”连接到使用 jdbc。
但是,当我使用node-oracledb时,这个连接字符串不起作用,大概是因为Node没有使用jdbc。我可以使用什么连接字符串来连接数据库?
【问题讨论】:
标签: oracle ldap node-oracledb
我有一个数据库,我可以使用字符串“jdbc:oracle:thin@ldap://SERVER_NAME:1234/SERVICE,cn=OracleContext,dc-world”连接到使用 jdbc。
但是,当我使用node-oracledb时,这个连接字符串不起作用,大概是因为Node没有使用jdbc。我可以使用什么连接字符串来连接数据库?
【问题讨论】:
标签: oracle ldap node-oracledb
没有可用于 LDAP 的“Easy Connect”语法,因此您需要 配置 ldap.ora 和 sqlnet.ora 文件并使用非 Easy Connect node-oracledb 中的字符串别名(或其他工具,如 SQL*Plus、PHP OCI8、Python cx_Oracle、Golang godror 等)。
有人告诉我(!)步骤是:
调用 netca -> 目录使用
通过 netca->命名方法配置配置命名以使用 LDAP。这将为名称查找设置 sqlnet.ora。
运行 netmgr 以设置 ldap 中的条目或运行 Enterprise Manager 以设置 ldap。
将这些文件复制到运行 Node.js 的机器上的子目录中,并将 TNS_ADMIN 设置为包含这些文件的目录。使用 Instant Client,您可以将其放在 Instant Client 库下的 network\admin 子目录中。请参阅手动条目Optional Oracle Net Configuration
将 node-oracledb 的 connectString 设置为 3 中配置的连接别名,例如“兽人”
【讨论】:
为了使 ldap 连接正常工作,我必须执行以下操作:
在 oracle 客户端的 network/admin 文件夹中添加(这些由我的数据库管理员提供,but there are examples here:):
然后 connectString 只是服务名称,没有别的。因此,使用原始示例 jdbc:oracle:thin@ldap://SERVER_NAME:1234/SERVICE,cn=OracleContext,dc-world,connectString 将只是 SERVICE
【讨论】: