通过我的研究,我找不到这个问题的副本(类似的格式不包括在任何这些答案),但请标记它这样,如果它已经存在。
我有下面的jdbc连接字符串来连接到一个oracle数据库,我正试图通过反向工程连接到其他地方,但我不知道哪些组件是服务器组件,哪些是数据库组件。
jdbc:oracle:thin:@word1://word2:port/word3,cn=word4,dc=word5,dc=word6
这是作为sqoop作业的一部分用于连接的。用户名和密码是分开提供的,所以我不相信这些组件是用户名或密码。有人能帮我把这些词和它们的用例画出来吗?
这些都在数据库里吗?
1条答案
按热度按时间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的结构是:
哪里
<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