Причины хранить данные пользователей в LDAP вместо RDBMS

Отзывчивый размер шрифта также может быть выполнен с помощью этого javascript, называемого FlowType:

FlowType - адаптивная веб-типография на самом лучшем уровне: размер шрифта на основе ширины элемента.

Или этот javascript называется FitText:

FitText - размер шрифтов гибкий. Используйте этот плагин для вашего адаптивного дизайна для изменения размера ваших заголовков.

25
задан szymond 18 February 2010 в 10:09
поделиться

6 ответов

Нет, это невозможно. Существует конструкция, называемая typelist , которая может использоваться для достижения эффекта, как и после. К сожалению, даже тогда вы не получите именованных членов, вы получите функции метода доступа с именами, такими как MyClass:: getField < 1 > () .

В C++ 0x вы можете работать лучше, чем с наборными списками с различными шаблонами . Но у вас по-прежнему будут функции доступа, похожие на регистр C++.

Здесь соблазнительно поместить пример с переменным шаблоном, потому что он не будет слишком большим. К сожалению, я думаю, что для этого потребуется несколько часов исследований с моей стороны, чтобы узнать, как именно работали различные шаблоны. Я мог бы сделать глупую версию относительно легко, но я ожидаю, что глупая версия будет намного менее хорошей в различных путях, чем хорошо сделанная версия.

-121--4950412-

http://www.shadowbox-js.com/

Это позволяет выбрать предметы и доставить файл js, который просто делает это...

Еще около 22 тысяч для изображений...

-121--2776674-

Совместимость, как уже упоминалось, очень важна для LDAP с некоторыми типами серверного программного обеспечения, хотя большая часть программного обеспечения, которое интегрируется с LDAP, требует определенной схемы, поэтому она не обязательно так проста, как просто установка и настройка службы LDAP и выключение - вам может потребоваться добавить новые элементы в схему для каждого приложения, с которым вы хотите взаимодействовать, и каждое приложение может иметь различные ограничения в отношении проверки подлинности (например, поля пароля в виде обычного текста, поля пароля в виде хэшей MD5 или SHA и т.д.).

Хорошая служба LDAP требует достаточно больших знаний о конфигурации, чем создание простой схемы в реляционной базе данных. Базы данных SQL по-прежнему достаточно совместимы, а поддержка LDAP не является такой доминирующей, как раньше. LDAP был единственным вариантом много лет назад, но многие приложения (как Apache) и операционные системы (как Linux PAM) могут аутентифицироваться против SQL DB, как MySQL, так же легко, как и LDAP серверы, как все это обрабатывается драйверами, которые абстрагируют интерфейс.

Где LDAP действительно светит, так это масштабируемость. Если вы специально хотите иметь место для хранения учетных записей пользователей для аутентификации и хотите масштабироваться на несколько реплицированных серверов - и обрабатывать тысячи запросов аутентификации в секунду, LDAP является отличным вариантом.

Дело не в том, что современные RDBMS не масштабируются, а в том, что LDAP (как правило) еще лучше в этом из-за того, как он каскадирует репликацию через различные уровни; особенно при условии, что у вас есть типичная настройка базы данных аутентификации, где она в основном доступна только для чтения с относительно небольшим количеством операций записи, поэтому вам нужна только одна репликация пути со всеми записями из одного источника истинности.

На самом деле, сервер LDAP - это что-то, что нужно учитывать, если у вас есть конкретная необходимость сделать это, например, конкретное приложение , с которым вы хотите взаимодействовать, только интегрируясь с LDAP,или , если вы создаете высокомасштабируемую систему аутентификации (например, для интернет-провайдера или для сверхмасштабируемого веб- приложения - где вы планируете иметь более пары серверов, только для аутентификации, и где они могут быть распространены по всей стране или даже по всему миру).

Точка зрения, которую кто-то уже высказал относительно наличия интерфейса LDAP в RDBMS, очень хорошая. Несколько компаний, включая Oracle (которые, конечно, имеют большой интерес к RDBMS), имеют продукты, которые делают именно это. Если вы не хотите накладных расходов на управление службой LDAP или просто хотите управлять всеми пользователями в БД, вы можете создавать представления/соединения с ними, но думаете, что может понадобиться служба LDAP позже, чем это хороший вариант. OpenLDAP также поддерживает бэкэнд оболочки, который может принимать данные из любого источника, включая RDBMS; Я использовал его с MySQL, и он работает хорошо, хотя может быть немного точно настроить в первый раз, если вам нужно поддерживать конкретную схему LDAP.

Таким образом, LDAP великолепен, но это ситуация, специфичная для совместимости и экстремальной масштабируемости. Если у вас есть ограниченные ресурсы для управления и поддержки одного, это может быть не стоит проблем поддержки, но если вы планируете услуги, такие как UNIX размещения POP/IMAP/SMTP или других сторонних интеграции программного обеспечения, то это, безусловно, стоит сделать (и даже может быть ваш единственный жизнеспособный вариант).

О, и, наконец, будьте осторожны в отношении того, какой сервер LDAP вы используете, если вы решите реализовать один! Они не все созданы равными, и различия между ними (с точки зрения производительности и простоты управления и настройки) могут быть довольно резкими.

OpenLDAP является довольно безопасной ставкой, хорошо масштабируется и довольно прост в использовании. Некоторые приложения лучше всего работают/поставляются с определенными конфигурационными файлами для определенного сервера LDAP (например, большое количество программного обеспечения в Solaris предполагает, что вы используете сервер каталогов Sun ONE), которые в противном случае не следует использовать - либо из-за того, что он не работает так же, либо является «свиньей» для настройки, плохо поддерживается и т.д.

30
ответ дан 28 November 2019 в 20:51
поделиться

Microsoft создала статью TechNet, в которой обсуждается их продукт режима приложений Active Directory (ADAM) , и в ней есть раздел, в котором сравниваются различия между каталогами и базами данных. Следующее взято непосредственно с сайта.

Каталоги

  • Оптимизированы для операций поиска и чтения.
  • Объектно-ориентированный, иерархический дизайн данных. Объекты данных в каталоге представляют такие объекты, как пользователи, компьютеры и общие ресурсы. Эти объекты данных могут быть организованы иерархически в контейнерах.
  • Не использует схемы.
  • Предназначен для репликации и распределенного управления.
  • Точная безопасность, вплоть до уровня объекта и атрибута.
  • Недостаточная согласованность данных между партнерами по репликации.

Базы данных

  • Оптимизированы для операций записи.
  • Проектирование реляционных данных. Данные организованы в таблицы строк и столбцов. Данные из одной таблицы могут быть связаны с данными в другой таблице.
  • Используются стандартизированные, расширяемые схемы.
  • Предназначен для централизованного хранения и администрирования данных.
  • Менее точная защита, только до уровня строк и столбцов.
  • Транзакционная - гарантированная согласованность данных. Ссылочная целостность в реляционных таблицах и управление параллелизмом с блокировкой файлов и записей.
8
ответ дан Norman H 28 November 2019 в 20:51
поделиться

Это действительно не исключает СУБД в качестве бэкэнда. См., Например, подробности о sql для slapd или посмотрите полный список бэкэндов .

3
ответ дан Unreason 28 November 2019 в 20:51
поделиться

Одной из веских причин является предоставление единого входа во многих приложениях (которые используют LDAP).

0
ответ дан cherouvim 28 November 2019 в 20:51
поделиться

Буква "L" в LDAP означает облегченный. Одна из целей LDAP - сделать его относительно простым в использовании и реализации. Если все, что вам нужно сделать, это хранить информацию о пользователях, вам не нужна полная гибкость (и потенциальная головная боль) доступа к вашим данным через SQL. Ограниченный интерфейс, представленный LDAP, должен быть проще. Это важно, если вы хотите, чтобы LDAP был реализован и поддерживался всеми, включая поставщика вашей операционной системы и всех поставщиков ваших приложений.

PS: При желании вы всегда можете реализовать сервер LDAP, храня всю информацию в СУБД и предоставляя ему интерфейс LDAP :)

PPS: LDAP - это протокол, подобный HTTP. РСУБД - это приложение, обычно рассматриваемое как приложение, реализующее, помимо прочего, SQL. Поэтому для сравнения яблок с яблоками лучше противопоставить LDAP SQL или HTTP.

7
ответ дан 28 November 2019 в 20:51
поделиться

Взаимодействие.

Каталоги LDAP имеют стандартную схему для представления пользователя, поэтому общие поля, такие как имя, фамилия и адрес электронной почты, будут иметь единообразные имена в разных реализациях каталогов. Это не относится к РСУБД.

LDAP определяет как протокол связи, так и язык запросов. Сравните это с SQL, который является только языком запросов, и каждая СУБД реализует свой собственный протокол связи.

Таким образом, существует множество приложений, которые могут просто «встраиваться» в каталог LDAP в качестве хранилища пользователей, что позволяет централизовать управление пользователями. (Конечно, все еще существуют проблемы совместимости между реализациями каталогов, но они бледнеют по сравнению с хранением пользователей в отдельных базах данных для каждого приложения).

1
ответ дан 28 November 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: