SourceOne:将 SourceOne SQL 数据库移至新的 SQL 服务器后,用户无法修改映射文件夹的权限
Summary: 将 SourceOne SQL 数据库移至新的 SQL 服务器后,用户无法修改映射文件夹的权限。
Symptoms
将 EMC SourceOne SQL 数据库移至新的 SQL 服务器后,用户无法修改映射文件夹的权限。将用户添加到映射文件夹或更改权限可能无法应用。不显示错误。如果对话框关闭并重新打开,则尚未应用权限。在某些情况下,MMC 可能会显示“无效指针”错误:
Invalid pointer (0x80004003) [ExMMCAdmin.dll, CoExFolderMgr.cpp(916).CCoExFolderMgr::AddPrincipleToList]
>System call failed. (0x86040100) [ExMMCAdmin.dll, CoExFolderMgr.cpp(460).CCoExFolderMgr::SaveFolder]
>Invalid pointer (0x80004003) [ExMMCAdmin.dll, CoExFolderMgr.cpp(916).CCoExFolderMgr::AddPrincipleToList]
>System call failed. (0x86040100) Unknown error (0x8004C350) [ExMMCAdmin.dll, CoExJDFDB.cpp(868).CoExJDFDB::ExecuteCmd]
Stack Trace:
at EMC.Interop.ExProviderGW.CoExJanusFolderClass.Save()
at EMC.EX.MMCAdmin.JDFForms.ExFolderMgrPropertySheet.SaveChanges(Boolean& bOKToClose)
Message : ExCreateDataSrcCacheApp @AppID=<#>,@AppRowID=<#>,@DataSourceID=<#>,@ExpansionMask=<#>
: <ServerName>
Message : System call failed. (0x86040100) Unknown error (0x8004C350) {Error 60006, severity 11, state 1 was raised, but no message with that error number was found in sys.messages. If error is larger than 50000, make sure the user-defined message is added using sp_addmessage. Error#:18054 Proc:ExCreateDataSrcCacheApp Line:62 Native error: 50000 SQL State: 42000 }
JobId : -1
ActivityId : -1
ActivityType : -1
每次尝试失败后,ExMMCAdmin.dll.log可能会记录以下错误:
Module : CoExJDFDB.cpp
Func : CoExJDFDB::CreateDataSrcCacheApp(6130)
Message : System call failed. (0x86040100) Unknown error (0x8004C350) {Error 60006, severity 11, state 1 was raised, but no message with that error number was found in sys.messages. If error is larger than 50000, make sure the user-defined message is added using sp_addmessage. Error#:18054 Proc:ExCreateDataSrcCacheApp Line:62 Native error: 50000 SQL State: 42000 }
Cause
Resolution
验证 SQL Server 的 Master 数据库是否不包含message_Id值为 60006 和 60007 的 sys.messages 条目。 以下查询可以检查这些条目:
Use master
Select * from sys.messages Where message_id = 60007
Select * from sys.messages Where message_id = 60006
如果 sys.messages 中不存在这些条目。运行以下 SQL 以创建它们(突出显示所有行并运行):
IF NOT EXISTS(SELECT * FROM sys.messages WHERE message_id = 60006 and language_id = 1033)
exec sp_addmessage 60006,11,N'Duplicate object (%s)', N'us_english'--,@replace = 'replace';
GO
IF NOT EXISTS(SELECT * FROM sys.messages WHERE message_id = 60006)
exec sp_addmessage 60006,11,N'Duplicate object (%s)'--,@replace = 'replace';
GO
IF NOT EXISTS(SELECT * FROM sys.messages WHERE message_id = 60007 and language_id = 1033)
exec sp_addmessage 60007,11,N'Data modification check failed. Table(s):%s', N'us_english'--,@replace = 'replace';
GO
IF NOT EXISTS(SELECT * FROM sys.messages WHERE message_id = 60007)
exec sp_addmessage 60007,11,N'Data modification check failed. Table(s):%s'--,@replace = 'replace';
GO
实施这些更改后,验证 MMC 现在可以修改映射文件夹的权限。