免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8406 | 回复: 5
打印 上一主题 下一主题

[ldap] 请问兄弟姐妹们如何完成关系数据库和LDAP之间的同步? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-17 14:50 |只看该作者 |倒序浏览
我浏览了先前的帖子,看到一篇文章提到这个问题:
http://bbs.chinaunix.net/archiver/?tid-858117.html       目录服务与数据库设计关系
也看到了py等的有用的回复。
但是我还是有些疑问:
我们要做一个新的项目,我是第一次接触LDAP。该项目中的一部分就是提供一个LDAP接口给其它模块使用。
该LDAP数据库需要储存的内容是用户权限组和用户名及密码。
而我们的目前的系统是一套比较成熟的系统,用的数据库是SQLSERVER,其中有个权限数据库储存了诸如权限组,用户名,密码,。。。一些信息。
这样我有两种开发方案,一种是把现在的数据库完全不要了,换成LDAP的,但是需要大量的工作量在修改两个大的原来使用SQLSERVER该数据库的应用程序;另一种方案就是现在的数据库保留,再开发一个LDAP数据库,该LDAP只储存权限组,用户名和密码,并定时的在两个数据库之间进行同步。
我想问的是,这两种开发方案哪种好实现些?我倾向于第二种方式,但是不知道这种方式如何完成同步?能完成同步吧?同步后系统是否稳定?

谢谢各位兄弟姐妹了!!

论坛徽章:
0
2 [报告]
发表于 2007-03-19 16:41 |只看该作者
各位帮我想想吧,就告诉我能不能实现也可以,十分感谢了!

论坛徽章:
0
3 [报告]
发表于 2007-03-20 10:41 |只看该作者
或者是不是我的这种问法本身就有问题啊?
我迫切想知道,各位指点指点我吧!
谢谢了!
版主帮帮我吧,:)谢谢了!

论坛徽章:
0
4 [报告]
发表于 2007-03-20 11:31 |只看该作者

回复 3楼 everyldap 的帖子

如果想互相同步,这个想法恐怕会有点问题。

如果说,以LDAP为主,然后可以将LDAP的用户数据同步到SQL Server, 这个没有问题。

其实,简单一点的做法就是修改下原来应用的认证这块,用LDAP来认证,认证通过就设置权限,如果需要用户数据同步到数据库,就检查数据库是否有该用户名,没有就复制过去。

论坛徽章:
0
5 [报告]
发表于 2007-03-27 10:20 |只看该作者
谢谢achaoge的回复,可是现在的问题就是如果采取用LDAP认证,原来的程序架构要完全修改。另外,只LDAP同步到SQLSERVER数据库不能满足需求,因为还要不断的往SQLSERVER数据库里插入数据。

我看到PY以前说过以下一段话:“在稍大一些的项目上, "放弃关系型数据库"基本上是在开玩笑, 除非项目内容有特殊性.
真的合适用LDAP吗?这个问题是我在做完一个项目的时候问自己的, 分布式的结构, 大量的用户和用户信息, 并且用户信息相对固定, 应用复杂存在需要统一认证的问题等等... 由于这些很显著的原因, 这个项目选择了使用LDAP. 并且当时就是按照楼主的设想抽取出一部分用户信息放在LDAP中, 两边数据库做一些同步的操作, 当然, 大多这些操作发生在修改和删除的时候. 设计过程就比较复杂, 最后实现的时候虽然最终证明是可行的, 但我还是不太满意. 感觉做的很牵强, 而且感觉整体上很脆弱. 我想过原因, 感觉是当时过多的考虑了这些"显著的原因", 没太注意已经存在的系统结构, 其实我并不觉得关系型数据库和LDAP并存是件古怪或不现实的事, 相反, 很多应用, 就如楼主所说, 都是部分应用LDAP擅长的部分. 但很多时候, 要完美的实现关系型数据库和LDAP的共同协作就要对现有的软件结构包括程序的代码部分做很大的改动, 尤其是在原有软件结构就比较混乱的情况下. 我以前的那个项目和楼主相似, 至少数据库部分是这样, 乱而且复杂. 这个时候要把用户信息抽取出来难度很大, 而且时间和精力有限, 客观条件就不能允许做全面的移植和修改. 这也是我为什么在很多时候都在问"是否真的要用LDAP"的原因.”
我很想知道是否这个谈的是否和我说的是一类问题,是否能实现两种数据库之间的同步,技术难点在什么地方?谢谢各位的关注!!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2007-03-27 22:39 |只看该作者
一看到LDAP和关系数据库纠缠在一起我就有心理阴影,所以一直没点开过这个帖子。

你的情况我觉得还是要具体问题具体分析。现在你说想想存在LDAP中的数据是“用户权限组和用户名及密码”,而这些东西原本是在关系数据库中的。现在好像很流行这么做。这么做是可以的,而且最终的效果会很完美。但不一定适合所有的情况。如果是一个系统的用户表和权限表与其它的表的关系复杂,在做移植的时候就会很复杂,在预期投入的时间精力有限的情况下做这样的改变就有很大风险。
目前你想从关系型数据库中抽出的信息是“用户权限组和用户名及密码”,其实就是认证信息和授权信息。一个比较折中的实际的方案就是只把认证这部分单独提取出来放在LDAP中,授权信息不动。
你的另一个想法是抛弃原有的关系型数据库,这个要看你的项目的具体情况了,多数情况下恐怕不能如愿。
另外,你的数据库是SQLSERVER,如果打算用微软的AD的话可能能顺理成章的达到你的期望。毕竟是微软的东西,整合起来可能会很容易,我对AD不甚了解,这块你还是再多找找资料。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP