Best Practices for Using LDAP Link with Vertica (перевод)

Несколько рекомендаций, которым вы должны следовать, чтобы убедиться, что вы случайно не потеряете ни пользователей, ни данные. Здесь объясняется, как обеспечить бесперебойную работу службы LDAP Link в Vertica.

2020-07-03

https://www.vertica.com/blog/best-practices-for-using-ldap-link-with-verticaba-p237852/

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

Но есть несколько рекомендаций, которым вы должны следовать, чтобы убедиться, что вы случайно не потеряете ни пользователей, ни данные. В этом блоге объясняется, как обеспечить бесперебойную работу службы LDAP Link.

Параметр “LDAPLinkDryRun” определяет, должна ли Vertica выполнить тесты между LDAP-сервером и Vertica. “Прогон всухую” проверяет:

  • что соединение работает;
  • параметры установлены корректно;
  • запросы к LDAP-серверу возвращает правильные результаты, записываемые в файл ldap_server_response.log.

“Прогон всухую” не производит никаких изменений в Базе Данных Vertica.

Для лучшего результата, установить параметр “LDAPLinkDryRun” в 1 и выполните “прогон всухую” в тестовом окружении. Выполение этого увеличит шансы, что вы останетесь без синхронизации в тот момент, когда подключите LDAP Link в вашем прод-окружении.

Предотвратите потерю объектов в Базе Данных

При удалении пользователя из LDAP-каталога, Vertica, при следующей синхронизации LDAP, удалит пользователя из Vertica-пользователей, а с ним удалит из Базы Данных все объекты (таблицы, виды, и т.д.), принадлежавшие пользователю. Эти объекты будут потеряны без возможности восстановления.

Для сохранения в Базе Данных объектов, принадлежащих удаляемому пользователю, используйте параметр “GlobalHeirUserName”. Этот параметр определяет, что произойдёт с объектами, когда их владелец исчезнет:

  • AUTO (по умолчанию) – Vertica назначит новым родителем объектов пользователя dbadmin.
  • – Vertica назначит определённого пользователя, как нового родителя этих объектов.
  • Empty – Vertica не будет назначать объектам какого-либо пользователя. В этом случае объекты будут потеряны без возможности восстановления. Этот параметр сродни выполнению операции => DROP USER user_name CASCADE;

Избегайте случайного удаления пользователей

Допустим, что LDAP Link синхронизируется, но не найдёт пользователей в LDAP-сервере. В этой ситуации, LDAP Link удалит из Vertica только тех пользователей , которые были созданы с помощью LDAP Link. (LDAP Link никогда не удалит из Vertica не-LDAP пользователей.)

Чтобы изменить такое поведение, установите параметр LDAPLinkStopIfZeroUsers в 1. Этот параметр указывает, что при неудачной синхронизации, когда возвращается пустой список пользователей в LDAP-каталоге, LDAP Link синхронизация должна вызывать ошибку. Это предотвратит случайное удаление легитимных LDAP-пользователей из Vertica.

Когда происходит ошибка синхронизации, запись о ней заносится в vertica.log, а также добавляется запись в системную таблицу LDAP_LINK_EVENTS.

После выяснения и исправления ситуации с отсутствием пользователей в LDAP-каталоге, установите параметр LDAPLinkStopIfZeroUsers в 0 и перезапустите синхронизацию.

Кратко

ПараметрРекомендованное значение
LDAPLinkDryRun1
LDAPLinkURLБез изменений
LDAPLinkSearchBaseБез изменений
GlobalHeirUserNameAUTO — автоназначение объектам пользователя dbadmin только в тех случаях, когда Vertica удаляет LDAP-пользователей.
username — в тех случаях, когда могут быть удалены любые пользователи, а не только LDAP.
LDAPLinkStopIfZeroUsers1

Доп информация

Если вы будете следовать этим процедурам, вы сможете управлять своими Vertica-пользователями с помощью подключения к LDAP, без потерь пользователей или данных. Для полной информации о LDAP Link смотрите LDAP Link Service в документации к Vertica.