如何在LDAP和RDBMS之间划分责任

Jam*_*att 6 rdbms ldap

我是一个为我的公司SaaS产品构建Web应用程序的项目的首席开发人员.我们目前正在使用LDAP来存储用户数据,例如ID,密码,联系方式详细信息,首选项和其他用户特定数据.

我们正在构建的应用程序之一是报告服务,它将收集并向最终用户呈现管理信息.显然,这项服务需要一个RDBMS,但它还需要访问存储在LDAP中的用户数据.

在我看来,我们有两个基本的实现选项:

  1. LDAP和RDBMS中的重复用户数据.
  2. 让报告服务在需要用户数据时访问LDAP.

虽然选项1中建议的重复数据(以及实现实现这一目标的机制)似乎是错误的方法,但我的直觉是选项2的表现不够好(如何将LDAP数据加入到RDBMS数据中)有效地作为纯RDBMS实现?).

我找到了一个相关的问题,但我仍然不确定采取哪种方法.我有兴趣看到人们对任何选项或其他选项的看法.

Pon*_*gge 2

为什么您认为复制数据是错误的方法?报告工具(基于网络的或其他的)主要是围绕关系数据库管理系统构建的,因此任何混合都会引入不必要的复杂性。报告可能需要相当频繁地更改(根据经验),因此您希望它们尽可能简单。您存储的有关用户的数据不太可能经常更改其格式,因此一旦您的导入功能正常工作,您就不需要再次触及它。

我看到的唯一障碍是延迟:如何确保 RDBMS 副本是最新的?您可能需要确保更新代码写入两个目标。就个人而言,我也不一定将 LDAP 用于特定于应用程序的个人偏好:LDAP 无法处理事务,那么当数据从多个方向更新时会发生什么?(事务性当然也是让更新程序写入两个存储的一个问题......)我宁愿让 RDBMS 成为大多数数据的主人,并让 LDAP 只担心身份、凭证和权利,这些很少被更改并且仅用于一组目的。对于我自己来说,LDAP 处理分层数据的能力并不是一个很好的卖点。

数据重复并不总是坏事,尤其是当使用场景足够不同时。