我有大部分的方式的不同实例,但似乎有一个权限问题的地方:还原数据库到的tridion
恢复谈判之前我在目标环境中工作正常 - 目标有一个服务器登录这被映射到我的tridion_cm数据库用户TCMDBUser
我的源tridion_cm数据库帐户TCMDBUser有用户TCMDBUser_DEV。
将源.bak恢复到我的目标TCMDBUser_DEV是孤立的。
我编辑受托人表纠正MTSUser和我的管理日志占我的目标环境,运行下面的来解决我的孤立的数据库用户:
sp_change_users_login @Action='update_one',
@UserNamePattern='TCMDBUser_DEV',
@LoginName='TCMDBUser'
GO
我可以重新登录,外表套上探险,看看出版物的预期列表,并可以通过树状结构走路,但是当我到了一个文件夹,它包含的项目我什么也看不到,出现错误:
和相应的事件日志错误是:
Unable to get list of SDL Tridion Content Manager items.
DESCRIPTION
Error Code:
0x80040000 (-2147221504)
Call stack:
System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String)
System.Data.SqlClient.SqlDataReader.GetOrdinal(String)
System.Data.SqlClient.SqlDataReader.get_Item(String)
Tridion.ContentManager.Data.AdoNet.DatabaseUtilities.ConvertToFieldDictionary(IDataRecord,IDictionary`2)
Tridion.ContentManager.Data.AdoNet.IdentifiableObjectDataMapper.Read(TcmUri,IDataRecord,IDictionary`2)
Tridion.ContentManager.Data.AdoNet.ContentManagement.OrganizationalItemDataMapper.GetListItemsPost(IDataReader,TcmUri,OrganizationalItemItemsFilterData)
Tridion.ContentManager.Data.AdoNet.ContentManagement.OrganizationalItemDataMapper.Tridion.ContentManager.Data.ContentManagement.IOrganizationalItemDataMapper.GetListItems(TcmUri,OrganizationalItemItemsFilterData)
Tridion.ContentManager.ContentManagement.OrganizationalItem.GetListItemsData(OrganizationalItemItemsFilter)
Tridion.ContentManager.ContentManagement.OrganizationalItem.GetListItemsStream(OrganizationalItemItemsFilter)
Tridion.ContentManager.BLFacade.ContentManagement.OrganizationalItemFacade.GetListItemsXml(UserContext,String,ListFilter,ListColumnFilter)
Tridion.ContentManager.BLFacade.ContentManagement.OrganizationalItemFacade.GetListData(UserContext,String,EnumListKind,ListColumnFilter,String)
Folder.GetListItems
你确定你恢复的数据库是完全相同的版本作为SDL Tridion CM服务器,你也连接它?两台数据库服务器的排序规则设置是否匹配? –
你是如何得出这是一个权限错误的结论?我在调用堆栈中的任何地方都没有看到任何访问检查... –
@BartKoopman你已经正确地将头钉在头上 - 我刚刚确认我的源Tridion实例不是服务包装,但我的目标是。当我对数据库运行升级工具时,重新启动错误消失。启发!感谢和遗憾的错误 –