反向工程jdbc-oracle连接字符串

jtjikinw  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(572)

通过我的研究,我找不到这个问题的副本(类似的格式不包括在任何这些答案),但请标记它这样,如果它已经存在。
我有下面的jdbc连接字符串来连接到一个oracle数据库,我正试图通过反向工程连接到其他地方,但我不知道哪些组件是服务器组件,哪些是数据库组件。

jdbc:oracle:thin:@word1://word2:port/word3,cn=word4,dc=word5,dc=word6

这是作为sqoop作业的一部分用于连接的。用户名和密码是分开提供的,所以我不相信这些组件是用户名或密码。有人能帮我把这些词和它们的用例画出来吗?
这些都在数据库里吗?

wlwcrazw

wlwcrazw1#

要对这个url进行反向工程,首先 @word1 .
根据oracle文档(参见下面的参考资料),url中 jdbc:oracle:thin: 是数据源。有各种不同的数据源类型,以及下一个第一个组件(包括 @ 如果存在)将确定类型。文档列出了以下数据源类型:
oracle网络连接描述符- @(...) 精简样式服务名称- name@ ldap语法- @ldap 遗赠语法- oci:path/@ tmsnames别名- @name 如果没有更多的上下文,您只需阅读文档,根据数据源类型对url的其余部分进行解码。
但你已经透露了 cn 以及 dc url中的参数。这使得99.9%的可能性,这实际上是一个 @ldap 数据源。
带有ldap数据源的jdbc url的结构是:

jdbc:oracle:thin:@ldap://<host>:<port>/<name>,<ldap context param>...

哪里 <host> 以及 <port> 用于ldap服务,ldap上下文参数是名称=值对的列表,其中应包括 cn=OracleContext .
这告诉jdbc驱动程序进行查找 <name> 在ldap服务器中使用给定的上下文,然后使用关联的信息建立数据库连接。我找不到确切的参考资料 <name> 实际上是的。oracle文档只是举了一个例子。
我能找到的最好的是:
数据库服务名称:数据库服务名称告诉驱动程序要连接到哪个数据库。例如,如果数据库名为“dmart”,则应输入dmart作为数据库服务名称。
(来源:https://razorsql.com/articles/oracle_ldap_jdbc_connect.html)
“@ldap”可以替换为“ldaps:”,这意味着通过ssl的ldap。
参考文献:
数据库jdbc开发人员指南和参考,数据源和url

相关问题