Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据库还原到tridion的不同实例中_Tridion_Tridion 2011 - Fatal编程技术网

将数据库还原到tridion的不同实例中

将数据库还原到tridion的不同实例中,tridion,tridion-2011,Tridion,Tridion 2011,我已经掌握了大部分方法,但似乎在某个地方存在权限问题: 在还原之前,在我的目标环境中一切正常-目标有一个服务器登录帐户TCMDBUser,该帐户映射到我的tridion_cm数据库用户TCMDBUser 我的源tridion_cm数据库有用户TCMDBUser_DEV 将source.bak还原到目标TCMDBUser_后,开发人员将成为孤儿 我编辑受托人表以更正目标环境的MTSUser和我的管理日志帐户,并运行以下操作以修复孤立的数据库用户: sp_change_users_login @Ac

我已经掌握了大部分方法,但似乎在某个地方存在权限问题:

在还原之前,在我的目标环境中一切正常-目标有一个服务器登录帐户TCMDBUser,该帐户映射到我的tridion_cm数据库用户TCMDBUser

我的源tridion_cm数据库有用户TCMDBUser_DEV

将source.bak还原到目标TCMDBUser_后,开发人员将成为孤儿

我编辑受托人表以更正目标环境的MTSUser和我的管理日志帐户,并运行以下操作以修复孤立的数据库用户:

sp_change_users_login @Action='update_one', 
@UserNamePattern='TCMDBUser_DEV', 
@LoginName='TCMDBUser'
GO
我可以重新登录到Tridion资源管理器,查看预期的出版物列表,也可以浏览树结构,但当我来到一个应该包含项目的文件夹时,我没有看到任何错误:

相应的事件日志错误为:

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

您需要从数据库中删除/删除TCMDBUser_DEV,然后创建一个具有相同名称和密码的新数据库(或将其重新连接到cm数据库)。这会解决你的问题

我通常使用MS SQL server的delete方法。我相信这是由于TCMDBUser在数据库模式上的所有权状态造成的

完成后,您的TCMDBUser用户对Tridion_CM数据库应具有以下权限


尝试在数据库中创建新用户TCMDBUser并运行以下命令

EXEC sp_change_users_login 'Update_One', 'TCMDBUser', 'TCMDBUser'

正如Chris提到的,我总是从数据库中删除用户,然后将恢复数据库的权限分配给SQL Server中现有的TCMDBUser。可以使用以下命令(在还原的数据库上)删除用户:

然后通过SQL Server-Security-Logins,请求TCMDBUser的属性,并在用户映射中添加以下数据库角色:
db\u datareader
db\u datawriter
db\u ddladmin


这是我过去一直在做的事情,对我来说很有效,不确定这是否都是必需的,但值得一试,我想

你是指新用户对抗tridion_cm还是新登录?我从头开始恢复,并针对tridion_cm创建了一个新用户TCMDBUser,然后运行建议的脚本。登录到Tridion Admin会得到与以前相同的结果。当然,我想保留TCMDBUser_DEV附带的权限,并将其绑定到登录用户(这是我最初的帖子)?我按照您的建议做了-针对tridion_cm创建了一个新用户TCMDBUser,并与现有登录TCMDBUser相关联。你说先用管理员用户登录是什么意思?您能详细说明从数据库还原开始所需的步骤吗?很抱歉混淆了用户和登录名。我的目标SQL实例有一个登录TCMDBUser,我想继续使用它作为我的用户进行访问(保留MMC管理单元设置),我还原的数据库有一个孤立的用户TCMDBUser_DEV。请列出需要T-SQL的步骤。我添加了一个权限屏幕截图,上面可能会有帮助,谢谢。是的,这就是它的样子。(我重新启动服务器也是为了确保正确的连锁反应)我从头开始并做了以下工作:我)对还原的数据库运行EXEC sp_dropuser TCMDBUser_DEV。ii)根据建议编辑现有登录TCMDBUser的用户映射iii)重新启动Tridion服务-结果是相同的:在TCM Explorer中,文件夹中没有项目您可以在问题中添加有关实际错误消息的更多详细信息吗?还要检查Tridion事件日志中的错误及其详细信息我似乎有某种访问权限,因为我可以查看和浏览所有我希望看到的出版物,并浏览文件夹结构组。但当我选择一个我希望包含项目的文件夹时,我看到的项目为零。事件日志错误已添加到帖子顶部。请检查项目和组织项目表的权限。用户应具有读写权限。我曾在二进制文件表中看到此设置错误,但从未见过您的问题。您确定您登录的用户具有查看该文件夹内容的权限吗?我是以Tridion系统管理员的身份登录的,因此读/写权限不相关。我从TRUESTEES表中随机选择了一个Tridion sys Admin用户,并将其名称字段更改为我的本地用户,该用户在我开始恢复之前作为有效登录名工作。另外请注意,例如,我可以查看出版物属性。您确定恢复的数据库与您连接的SDL Tridion CM服务器的版本完全相同吗?两个数据库服务器的排序规则设置是否匹配?您是如何得出这是权限错误的结论的?我在调用堆栈中没有看到任何类型的访问检查…@BartKoopman你已经一针见血了-我刚刚确认我的源Tridion实例没有打包服务,但我的目标是。当我对数据库运行升级工具并重新启动时,错误消失了。受到启发的谢谢你,对这个错误感到抱歉
EXEC sp_dropuser TCMDBUser