MOSS中的User的Title, LoginName, DisplayName, SID之间的关系
做过一些测试, 把结论写在这里.
在域中新建一个用户, 起名为登录名为domain\leiwang. 把这个用户加到MOSS的站点中.
SharePoint内容数据库中数据如下:
=================================================================
由于王蕾嫁人了, 要跟着老公改姓唐, 所以其登录名需要更换. 仅在DC中修改此处:
这个修改反映在SharePoint中如下:
SSP的User Profile
站点中
注意: 这里登录名已经需要使用leitang了. 但是可以看到Account, 和Name都没有更改.
反映在数据库中如下:
注意, 仅在DC中修改登录名, 不会对SharePoint的content database中的数据产生任何影响. 由此可见: SharePoint的用户登录不已用户名为基准, 以SID为基准. 只要SID不变, SharePoint就认为是同一个用户, 准许登录, 相同权限.
下一步, 我们在DC中进一步修改LeiTang的显示名称.
Incremental Crawl User Profile之后, Profile Sync到Content Database之后, 站点层面显示如下:
注意, 这里的Account并没有更改.
下面看同时的数据库中的状态.
可以确定界面上的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. 在这种需求下, 最好的方式是从站点中直接将该用户删掉, 再重新加回来.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2010-01-10 [翻译文章]性能监视器的计数器 之一 处理器性能计数器