为什么 Perl 使用 LDAP?
Why is Perl using LDAP?
我在当前角色中继承的东西之一是一个古老的 Perl CGI Web 应用程序(大约 2002 年)。连接到 Oracle 数据库。它似乎使用同样古老的 LDAP 服务器来解析 Oracle 数据库。以前,这里的所有内容都使用 LDAP 服务来检索 TNS 连接定义。我们已迁移所有其他内容以使用更简单的基于 DNS 名称的连接字符串。我想对 Perl 代码做同样的事情。
但我在 Perl 代码中找不到任何对 LDAP 服务器的引用。
我可以在发出的 HTTP 请求(以及执行的 perl 代码)和与 LDAP 服务器的连接之间建立直接关联。
查看代码,DBI 构造函数如下所示:
$dbh = DBI->connect("DBI:Oracle:DB","username","password", {RaiseError => 1,AutoCommit => 1}) || die("Connecting to oracle");
(但数据库、用户名和密码的文字不同)。
显然这是在使用 TNS 定义,但我看不出 Perl 如何知道在 LDAP 服务中查找 TNS 定义,也看不到它应该在何处找到 LDAP 服务的任何指示。
我查看了所有引用的 Perl 模块文件,但没有看到任何对“LDAP”或 LDAP 主机的引用。
(但我确实扫描了整个文件系统以查找 tnsnames.ora 文件,但除了 Oracle 客户端安装中的示例文件外没有找到其他文件)。
我还应该看哪里?
我希望您会在服务器上找到一个 sqlnet.ora
文件,该文件的 names.directory_path
设置包括 LDAP。该文件中可能还会有一些 names.ldap_*
设置。
我在当前角色中继承的东西之一是一个古老的 Perl CGI Web 应用程序(大约 2002 年)。连接到 Oracle 数据库。它似乎使用同样古老的 LDAP 服务器来解析 Oracle 数据库。以前,这里的所有内容都使用 LDAP 服务来检索 TNS 连接定义。我们已迁移所有其他内容以使用更简单的基于 DNS 名称的连接字符串。我想对 Perl 代码做同样的事情。
但我在 Perl 代码中找不到任何对 LDAP 服务器的引用。
我可以在发出的 HTTP 请求(以及执行的 perl 代码)和与 LDAP 服务器的连接之间建立直接关联。
查看代码,DBI 构造函数如下所示:
$dbh = DBI->connect("DBI:Oracle:DB","username","password", {RaiseError => 1,AutoCommit => 1}) || die("Connecting to oracle");
(但数据库、用户名和密码的文字不同)。
显然这是在使用 TNS 定义,但我看不出 Perl 如何知道在 LDAP 服务中查找 TNS 定义,也看不到它应该在何处找到 LDAP 服务的任何指示。
我查看了所有引用的 Perl 模块文件,但没有看到任何对“LDAP”或 LDAP 主机的引用。
(但我确实扫描了整个文件系统以查找 tnsnames.ora 文件,但除了 Oracle 客户端安装中的示例文件外没有找到其他文件)。
我还应该看哪里?
我希望您会在服务器上找到一个 sqlnet.ora
文件,该文件的 names.directory_path
设置包括 LDAP。该文件中可能还会有一些 names.ldap_*
设置。