Я понимаю, что LDAP — это протокол, который используется для связи с системой Active Directory, такой как OpenLDAP.
Я также понимаю, что OpenLDAP — это своего рода база данных, которая хранит объекты в дереве.
Мой вопрос: когда и для чего следует Я использую (если вообще использую) LDAP вместо реляционной БД.
Какую проблему решает LDAP в мире Интернета?
Ответы (5)
Реляционная база данных и база данных на основе LDAP решают разные задачи. LDAP сильно ориентирован на быстрое чтение и медленную запись, он иерархичен, распределен и основан на полномочиях (например, DNS). Если ваши данные не соответствуют этому предположению, LDAP не является правильным выбором.
LDAP хорошо подходит для описания иерархии объектов, например адресной книги компании. В то время как реляционная база данных требует, чтобы каждый отдел имел доступ к большой глобальной таблице со всеми адресами, решение LDAP позволяет распределить ответственность за адресную книгу каждого отдела между самим отделом, оставляя ее доступной для запросов всем остальным в компании.
LDAP позволяет хранить любую информацию. Адресная книга является наиболее типичным примером, но все, что может быть задумано как иерархический, ориентированный на полномочия набор данных, может храниться в LDAP. Другой пример: предположим, что библиотека является частью консорциума библиотек, и они хотят хранить данные о книгах, которые у них есть. База данных иерархична (каждая библиотека является авторитетной в пределах своих границ), и каждая библиотека независима от других. Внутри схемы можно хранить данные о книгах, такие как автор, год издания, название, isbn и так далее.
Для хранения данных вы представляете их в специальном формате файлов LDIF, но существуют и API. LDIF, однако, является наиболее простым способом просмотра информации. это просто текстовый файл. Пример из википедии
dn: cn=John Doe,dc=example,dc=com
cn: John Doe
givenName: John
sn: Doe
telephoneNumber: +1 888 555 6789
telephoneNumber: +1 888 555 1232
mail: [email protected]
manager: cn=Barbara Doe,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
Это описывает информацию о парне по имени Джон Доу. Он находится в «области» dc=example, dc=com и имеет кучу другой информации, связанной с ним (подумайте, как строка таблицы). Обратите внимание, что иерархия может быть (очевидно) связана с интернет-доменами, как в этом случае, но на самом деле описание иерархии очень гибкое. Вы можете организовать иерархию на основе национальных границ или отделов компании или чего угодно, как вам больше нравится.
Вы должны использовать LDAP, когда вам нужно управлять доменом данных, в котором у вас есть
- потребность в гибкой схеме с уменьшенными требованиями к хранилищу.
- сниженная потребность в записи, высокая потребность в чтении
- сильный иерархический характер управления и организации информации
- полномочия и делегирование полномочий
Этот краткий и приятный пост содержит очень полезную информацию, касающуюся этого сценария.
Если вам интересно, вы можете углубиться здесь, что является продолжением приведенная выше ссылка.
LDAP хорош для данных, которые часто считываются и редко записываются. Например, LDAP часто используется для хранения информации о логине или пароле пользователя.
LDAP — это централизованная система управления пользователями и учетными записями, которая также может хранить некоторые поля данных.
Вы также можете использовать LDAP в качестве механизма поиска-адресации для получения ресурсов, например соединений с базой данных или удаленных служб.
Что мне нравится в LDAP, так это то, что вы можете получать информацию в стиле каталога/URL. Это сильно отличается от СУБД, где вы должны использовать специальный язык запросов. Это часто имеет смысл и интуитивно понятно, если все организовано иерархически.