现在的位置: 首页 > 综合 > 正文

MOSS中的User的Title, LoginName, DisplayName, SID之间的关系

2012年12月28日 ⁄ 综合 ⁄ 共 1392字 ⁄ 字号 评论关闭

做过一些测试, 把结论写在这里.

在域中新建一个用户, 起名为登录名为domain\leiwang.  把这个用户加到MOSS的站点中.

image image

 

SharePoint内容数据库中数据如下:

image

=================================================================

由于王蕾嫁人了, 要跟着老公改姓唐, 所以其登录名需要更换. 仅在DC中修改此处:

image

 

这个修改反映在SharePoint中如下:

SSP的User Profile

image

站点中

image

注意: 这里登录名已经需要使用leitang了. 但是可以看到Account, 和Name都没有更改.

 

反映在数据库中如下:

image

注意, 仅在DC中修改登录名, 不会对SharePoint的content database中的数据产生任何影响. 由此可见: SharePoint的用户登录不已用户名为基准, 以SID为基准. 只要SID不变, SharePoint就认为是同一个用户, 准许登录, 相同权限.

 

下一步, 我们在DC中进一步修改LeiTang的显示名称.

image

Incremental Crawl User Profile之后, Profile Sync到Content Database之后, 站点层面显示如下:

image

注意, 这里的Account并没有更改.

下面看同时的数据库中的状态.

image

可以确定界面上的Account对应在数据库层面就是tp_login. 修改AD中的所有信息都不会影响到这个属性. User Profile的更新也不会变更这个信息.

 

那么如何让嫁人改姓后的Lei Tang小姐在SharePoint彻底改姓呢?

答案是MigrateUser.

stsadm -o migrateuser -oldlogin yunzhang\leiwang -newlogin yunzhang\leitang -ignoresidhistory

运行上面的命令之后, 数据库中的tp_login就修改掉了.

 

可是发生了问题, 我们会发现在MigrateUser命令运行之后, 该用户的User Profile的更新的信息会进入SSP中, 但不会再被Sync到Content Database中了.

在SSP中删掉该用户的profile, 重新Import, Sync还是不行.

必须将用户从Site Collection中删除, 再重新添该账户到SharePoint站点中, 才可以让User Profile 能够重新Sync.

 

我们又进行了一次测试, 这次跳过Migrate User的动作, 直接将用户从站点集中删除(All People->Delete Users from Site Collection), 之后再将用户加回站点中来. 效果更好, User Profile的Sync都正常.

 

结论

===============

DC中的Display Name, Login Name都不是SharePoint辨认用户的依据, SID才是.

DB中的tp_login对应UserProfile中的Account Name, 对应具体站点中的"User Name".

DB中的tp_Title对应UserProfile中的Name, 对应具体站点的Name.

DB中的tp_login如果需要修改, 可以通过stsadm –o migrateuser改掉, 但是之后该用户的profile不会再正常sync. 在这种需求下, 最好的方式是从站点中直接将该用户删掉, 再重新加回来.

抱歉!评论已关闭.