• 首先要先理解什么是LDAP,当时我看了很多解释,也是云里雾里,弄不清楚。在这里给大家稍微捋一捋。
  • 首先LDAP是一种通讯协议,LDAP支持TCP/IP。协议就是标准,并且是抽象的。在这套标准下,AD(Active Directory)是微软出的一套实现。
    那AD是什么呢?暂且把它理解成是个数据库。也有很多人直接把LDAP说成数据库(可以把LDAP理解成存储数据的数据库)。像是其他数据库一样,LDAP也是有client端和server端。server端是用来存放资源,client端用来操作增删改查等操作。
  • 而我们通常说的LDAP是指运行这个数据库的服务器。
  • 可以简单理解AD =LDAP服务器+LDAP应用。

那LDAP这种数据库有什么特殊的呢?

  • 我们知道,像MySQL数据库,数据都是按记录一条条记录存在表中。而LDAP数据库,是树结构的,数据存储在叶子节点上。看看下面的比喻:

假设你要树上的一个苹果(一条记录),你怎么告诉园丁它的位置呢?当然首先要说明是哪一棵树(dc,相当于MYSQL的DB),然后是从树根到那个苹果所经过的所有“分叉”(ou),最后就是这个苹果的名字(uid,相当于MySQL表主键id)。好了!这时我们可以清晰的指明这个苹果的位置了,就是那棵“歪脖树”的东边那个分叉上的靠西边那个分叉的再靠北边的分叉上的半红半绿的……,晕了!你直接爬上去吧!

就这样就可以描述清楚“树结构”上的一条记录了。
说一下LDAP里如何定义一个记录的位置吧。

树(dc=ljheee)
分叉(ou=bei,ou=xi,ou= dong)
苹果(cn=redApple)

好了,redApple的位置出来了:
dn:cn=honglv,ou=bei,ou=xi,ou=dong,dc=ljheee
其中dn标识一条记录,描述了一条数据的详细路径。
咦!有人疑问,为什么ou会有多个值?你想想,从树根到达苹果的位置,可能要经过好几个树杈,所有ou可能有多个值。关于dn后面一长串,分别是cn,ou,dc;中间用逗号隔开。

总结一下LDAP树形数据库如下:
dn :一条记录的详细位置
dc :一条记录所属区域    (哪一颗树)
ou :一条记录所属组织    (哪一个分支)
cn/uid:一条记录的名字/ID   (哪一个苹果名字)
LDAP目录树的最顶部就是根,也就是所谓的“基准DN"。
  • 为什么要用LDAP目录树来存储数据,用MySQL不行吗,为什么非要搞出一个树形的数据库呢?
  • 这是因为用树形结构存储数据,查询效率更高(具体为什么,可以看一下关系型数据库索引的实现原理——B树/B+树)。在某些特定的场景下,使用树形数据库更理想。比如:需要储存大量的数据,而且数据不是经常更改,需要很快速的查找。
  • 把它与传统的关系型数据库相比,LDAP除了快速查找的特点,它还有很多的运用场景,比如域验证等。

作者:消失er
链接:https://www.jianshu.com/p/7e4d99f6baaf
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

以下为原创:

还有LDAP数据库展示数据也是树形的,上文作者用的是ApacheDirectoryStudio连接LDAP服务器,我用的是LDAP admin连接的LDAP服务器:

比如上面图形中的uid为testuser 的用户,他的DN就是

dn: uid=testuser,ou=users,dc=zhuoxun,dc=com

可以通过唯一标识(dn)来查找到这个用户。

命令行为:

ldapsearch -x -b "uid=testuser,ou=users,dc=zhuoxun,dc=com"

接下来让我们开始配置LDAP,并且新增组(ou)和用户(uid/cn)

JumpServer中,LDAP服务器端配置和新增组和用户

LDAP(1) 认知入门相关推荐

  1. 第一课 以太坊开发从入门到精通学习导航

    辉哥认为,区块链是人类社会伟大的革命,改变了生产关系.但是作为技术人员,有必要了解全部底层技术和算法吗?依稀记得,以前有些培训机构培训使用电脑时先教五笔输入法,然后才开始学习使用WINDOWS,让很多 ...

  2. 如何通过自学成为一名安卓软件开发工程师?

    学习新技术都很多人来说本身就是一件比较痛苦的事情(因为学习会改变自己原有的认知,是个自我更新的过程)~ 所以能不能学会学好的前提条件是你是不真真愿意去学,你想学adnroid的根本出发点是什么,这个出 ...

  3. 业余LaTeX学习笔记(一)-引言

      一直想学LaTeX,耳闻掌握LaTeX 技术,投稿换期刊时,只需要改几行代码即可,不需要像在 WORD 中一样,花费大量精力调格式(要是频繁地换刊,估计会狗带吧).正好最近有一段比较空闲的时间,可 ...

  4. 如何通过自学成为一名 Android 应用开发工程师?

    作者:陈昱全 链接:https://www.zhihu.com/question/21565227/answer/142800222 来源:知乎 1.初级之路 1.1 项目引路 对于自学的人来说,在边 ...

  5. 如何从0基础到安卓软件开发工程师?

    对于有志于成为"手机软件开发工程师"的人,报班学习,也许是他们的第一反应.比如: 学校良莠不齐,学费高昂,能否学到有用的知识,能否顺利就业,困扰着很多新人. 笔者认为,首先要对移动 ...

  6. 主题302:安装和开发

    在你开始前 了解这些教程可以教给您什么以及如何从中获得最大收益. 关于本系列 Linux Professional Institute (LPI)在三个级别上对Linux系统管理员进行认证: 初级 ( ...

  7. creative thoughts开源软件

    转载: https://zhuanlan.zhihu.com/p/609516460 1. IT公司研发系统系列工具打造 https://github.com/hokhyk/actionview.gi ...

  8. [周末阅读]认知和规划,以及推荐几个入门教程Github

    图片来自 Unsplash,作者: Rafael Saes 2019 年第 54 篇文章,总第 78 篇文章 本文大约 4600 字,阅读大约需要 12 分钟 前言 本来预计每个周末一篇读后感,但从上 ...

  9. Git笔记(2) 入门认知

    Git笔记(2) 入门认知 1. 近乎所有操作都是本地执行 2. 保证完整性 3. 直接记录快照,而非差异比较 4. 一般只添加数据 5. 三种状态 6. 命令行 1. 近乎所有操作都是本地执行 在 ...

最新文章

  1. FFmpeg集成到GPU
  2. TensorFlow学习笔记——实现经典LeNet5模型
  3. 帝国cms后台用户名密码正确显示您还未登录错误的原因及解决方案
  4. [ATF]-ATF的RT_SVC的详解(runtime service)
  5. python dataframe取列名_python – 获取列名在DataFrame中按其值排序
  6. 逻辑回归 - sklearn (LR、LRCV、MLP、RLR)- Python代码实现
  7. Matplotlib 中文用户指南 4.7 使用 LaTeX 渲染文本
  8. 消息称快手拟发行4.159亿股 招股价上限约93港元
  9. php与mysqli,如何通过PHP与MySQLi保持联系
  10. MySQL基础(2)----DDL DML DQL语言完成数据库的增删改查操作 数据备份(导入导出sql包) 单表查询
  11. 基于JAVA汽车客运站票务管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  12. 忆过去 想未来 人有情
  13. 《疯狂原始人》温馨而搞笑片段截图
  14. 【安全狗高危安全通告】Oracle WebLogic Server 4月多个安全漏洞解决方案
  15. LienJack-2年前端面试心路历程(字节跳动、YY、虎牙、BIGO)
  16. 中粮、益海品牌集中度提高,中小米企机会在高端细分市场
  17. win7 php7 redis扩展,win7 php5.6 redis扩展
  18. ACM-ICPC 2018 南京赛区网络预赛 Skr 马拉车+字符串hash+hash表
  19. php导出成word试卷,依据word模板批量生成试卷
  20. AutoTools 疑难解决方法

热门文章

  1. FileZilla连接不上本地虚拟机的解决办法
  2. 微信公众号调起扫码功能
  3. 强国杯半决赛东部赛区部分wp
  4. Verilog基本语法——模块
  5. 前端面试----深信服面试题全概
  6. 蒲公英企服平台对话奈学教育CEO孙玄——旨在让每一个人都有逆袭的机会。
  7. ProtoBuf 官方文档翻译
  8. Java基础之刨根问底第1集——JVM的结构
  9. Kotlin骚气写法 三
  10. Thingsboard之魔鬼编译,编译失败问题整理,ServerUI