Kaneboy's Blog

SharePoint & Office Zealot
随笔 - 361, 评论 - 3663, 引用 - 201

导航

关于






Passed:
SPS2003 Infrastructure√
SPS2003 Custom Applications√
TS : WSS3.0 Configuration√
TS : WSS3.0 App Development√
TS : MOSS2007 Configuration√
TS : MOSS2007 App Development√
MCPD : Web Development√

此Blog中的文章和随笔只代表作者某一时间内的个人观点或结论,不代表任何公司立场和观点,也对其正确性没有任何担保或假设。(版权声明:作者原创文章和随笔的转载,请知会作者。)

点击这里查看此blog所有SharePoint文章!

SharePoint 2007 Starter Page

SharePoint External Binary Storage
QuickPart : 用户控件包装器 for SharePoint2007






标签

每月存档

最新留言

广告

 

先把问题描述一下:已把AD用户“User1”加到SharePoint站点中,然后进行如下类似操作:将“User1”从SharePoint站点中删除,将“User1”从AD中删除,在AD中增加一个新用户“User1”,在SharePoint站点中增加一个用户“User1”,这时,您会发现很有意思的问题:可能可以成功增加这个用户,但是这个用户始终无法登录到SharePoint站点中;或者根本增加不了这个用户到SharePoint站点中,提示您站点中已经存在这个用户了。

在上次CSDN站点的SharePoint技术聊天活动中,有参与的网友询问了类似的问题,由于当时我在聊天活动中无法给出非常详细的解释,所以只是给出了一个相关的链接。今天用这篇文章详细解释一下。

这个问题出现的原因,是出自SharePoint对于站点用户的存储机制所造成的。SharePoint站点用户信息保存在站点对应的内容数据库的UserInfo表中,如果站点管理员删除了站点中的某个用户,您可能会惊奇的发现,这个用户相应的记录并未从UserInfo表中删除,而只是将“tp_Deleted”这个列的数据进行了设置。(这种机制的原因所在是这条记录可能已经通过外键关联了其他表的其他记录,比如此用户编写的文档,所以将此记录直接删除是不可取的。)

在以后,如果站点管理员将一个同名的用户增加到这个站点中,由于UserInfo表中已经有这条用户记录的存在,所以SharePoint也只是将这条记录的“tp_Deleted”列的数据再进行设置。

这时候,问题就来了。在UserInfo表中,有一个“td_SystemID”列,这个列是用来记录这个用户的Security Identification Number(SID)的。我们在AD中删除一个用户,再新增一个同名用户,这先后两个用户的SID肯定是不同的。而SharePoint使用了这个“td_SystemID”列来识别用户,由于前后两个用户的SID肯定不同,所以SharePoint站点就“不认”在AD中重新增加的这个用户了。

解决方法就是把UserInfo表的“td_SystemID”列的数据和当前AD中的用户信息进行同步。在SqlServer中有一个SUSER_SID()函数,可以返回某用户的SID信息。在Dean的Blog上,他已经给出了一个完整的Sql语句,大家可以直接使用。

顺便题一下,在Deam的Blog上,他也描述了这个问题所造成的另外一个问题:如果我们备份站点的时候,将用户信息也一起备份了下来,在恢复到另外一个AD中时,如果站点用户有同名的现象,也同样会造成SharePoint“不认”这个AD用户。

打印 | 张贴于 2004-12-05 22:42:00 | Tag:SharePoint

留言反馈

#回复: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
我们备份站点的时候,将用户信息也一起备份了下来,在恢复到另外一个AD中时,如果站点用户有同名的现象,也同样会造成SharePoint“不认”这个AD用户。

请问:关于这个问题的具体解决办法,Dean的Blog有很多文章,又都是英文,实在找不到有关问题的文章,请斑竹在此说明一下解决的办法,万分感谢。
2007-09-20 11:19:00 | [匿名用户:和ihh]
#回复: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
2007-08-22 14:51:00 | [匿名用户:北京同声传译]
#回复: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
这时候,问题就来了。在UserInfo表中,有一个“td_SystemID”列,这个列是用来记录这个用户的Security Identification Number(SID)的。

是"tp_systemid"吧?列名写错了.
2006-12-26 15:33:00 | [匿名用户:Hooyke]
#re: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
上面的情况也是SharePoint站点中用户信息与AD用户信息的“不一致”引起的。

2006-11-07 20:03:00 | [匿名用户:caspar]
#re: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
弄了台新的WSS服务器,把数据库也重新弄了,网站所有者竟然进不了他所在的URL,会出现如下提示 “不能完成此操作。

请重试。”的错误,而当我通过Sharepoint管理中心->管理网站集所有者查看“网站URL”时也是“不能完成此操作。

请重试。
”这个错误。请高手指点一二
2006-11-06 20:01:00 | [匿名用户:caspar]
#SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
SharePoint站点中用户信息与AD用户信息的“不一致”问题
2006-10-30 11:58:00 | [匿名用户:david286]
#re: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
因此,我觉得该用户的值一定在其他表或什么地方还存在,目前我的唯一办法就是停用或删除该帐户,希望楼主能再指点,关注中
2005-08-25 18:10:00 | [匿名用户:turen]
#re: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
我也遇到这样的问题,没有办法啊,重装WSS,问题依然,我在网站集里、用户管理中删除用户后,tp_Deleted中该用户的值由0变为4,可是再登陆依然进入。删除库中该行记录,再登陆,又进了,该用户在表中再次出现,tp_Deleted为0,有什么办法在用户管理和集里删除用户,而不删除AD帐户,该用户不再能登陆WSS?
2005-08-25 18:04:00 | [匿名用户:turen]
#re: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
将SPS站点迁移后,无法进入子网站连域管理员也不行;
环境:
源服务器appdev的AD是本机帐户方式,创建子网站的帐户例如为appdev\test;
目标服务器lm的AD是域帐户方式,域管理员为lm\Administrator;另外也建立了账户lm\test,并分配了SPS网站管理员权限;
无法进入子网站给用户分配权限,哪位兄弟知道解决方法,先谢谢啦!
联系方式
QQ:534955
E-mail:yuanzhenglin@liming.com
2005-04-12 14:55:00 | [匿名用户:robert yuan]
#re: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
将SPS站点从一个域迁移到另一个服务器上重建的完全相同的一个域上提示

“不能完成此操作。

请重试”
,用Dean的Blog的代码对用户的SID进行更新后可以正常进入访问SPS站点了,但访问SPS站点下的WSS站点时还是一样的提示

“不能完成此操作。

请重试”

请问是不是WSS站点里的用户信息是放在另一个表里需要重新同步?
2005-02-23 23:45:00 | [匿名用户:陈正水]
#re: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
集成AD验证的系统和数据库同步一直是问题,有点恶心:-(
2004-12-06 10:39:00 | [匿名用户:Ariel]
#re: SharePoint站点中用户信息与AD用户信息的“不一致”问题 编辑
我遇到的问题不知道是不是也与这个有关呢
A创建了文档1,后来A辞职了,也就在AD里已经删除掉了A用户.B是新来的员工,当B打开文档是,成员里没有B,用管理员身份添加B,整个添加过程没问题,但添加后还是没有B,而A还在,不知道是什么原因
2004-12-05 22:55:00 | [匿名用户:黄炯威]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.1.0