【问题标题】:How to divide responsibility between LDAP and RDBMS如何在 LDAP 和 RDBMS 之间划分职责
【发布时间】:2010-12-11 04:57:12
【问题描述】:

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

我们正在构建的应用程序之一是一个报告服务,它将收集管理信息并将其提供给我们的最终用户。显然,该服务需要 RDBMS,但它还需要访问存储在 LDAP 中的用户数据。

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

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

尽管按照选项 1 的建议复制数据(并实施实现这一点的机制)似乎是错误的方法,但我的直觉是选项 2 的性能不够好(你如何将 LDAP 数据“加入”到RDBMS 数据与纯 RDBMS 实现一样高效?)。

我确实找到了related question,但我仍然不确定采用哪种方法。我很想看看人们对这两个选项或其他选项的看法。

【问题讨论】:

  • 这个问题的一个例子是我们可以实现用户登录报告。我们需要一个登录事件列表和一些相关的用户数据,例如显示名称和电话号码。登录事件将存储在 RDBMS 中,但用户数据将存储在 LDAP 中。

标签: ldap rdbms


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    相关资源
    最近更新 更多