我了解关系数据库的基础知识、SQL 和 MySql 之间的基本区别以及如何连接到 SQL 和 MySql 数据库、设置表、模式、运行查询等。
我已经开始使用一台新设备,据我所知,该设备上有一个 LDAP 数据库(准确地说是 Splicecom Maximiser 呼叫服务器)。我有 LDAP 凭据,但对 LDAP 一无所知。
是否有相当于适用于 LDAP 的 MySql Workbench 或 Microsoft SQL Server Management Studio 的工具?LDAP 数据库是关系数据库还是其他数据库模型?我能否以连接到 SQL 或 MySql 数据库并运行查询的相同方式连接到 LDAP 数据库,还是完全不同?
我听到数据库这个词,并认为我以前使用过数据库,数据库有表、模式和可用于查询的语言。如果我了解数据库的布局(哪些数据在哪些表中,我的主键是什么,我需要加入什么,索引什么以及我需要索引什么等),那么学习我可以采取什么查询语言我了解 SQL 和 MySql 并将其应用于 LDAP。
我是否走在正确的道路上?
谢谢
LDAP 不是关系数据库。事实上,它根本不是一个通用的“数据库”,它是一个树形结构的目录。
您在关系数据库中熟悉的许多概念并不真正适用于 LDAP。例如,没有“表”,也没有“连接”操作。
LDAP 条目是属性的集合。条目以树结构排列,并由“专有名称”唯一标识,该“专有名称”是树中该对象的路径。例如:
cn=Joe Smith,ou=用户,dc=示例,dc=com
将是“example.com”(dc=example,dc=com) 目录中“用户”组织单位 (ou) 中通用名称 (cn)“Joe Smith”的条目。
LDAP 中最基本的操作是搜索,它需要一个“搜索库”和一个过滤字符串。例如,使用命令行 LDAP 工具,您可能会说:
ldapsearch -b"dc=example,dc=com" "cn=Joe S*"
Run Code Online (Sandbox Code Playgroud)
找到上面的条目并返回所有属性。(请注意搜索过滤器中使用“*”通配符)。您还可以查询其他属性,使用“and”和“or”构建更复杂的查询,指定要返回的属性等。
了解特定 LDAP 目录的一种好方法是使用 ldapsearch(命令行)或 Apache Directory Studio (GUI) 等工具在其中浏览。
附:就我个人而言,我建议使用术语“LDAP 目录”而不是“LDAP 数据库”——“数据库”一词往往会让人产生这样的期望:LDAP 可以做一些它根本不适合做的事情(连接、聚合操作等)。