Error "No se pudo completar la operación" al restaurar una base de datos de Microsoft Management Reporter 2012

En este artículo se proporciona una resolución para la operación No se pudo completar que puede producirse al restaurar una base de datos de Microsoft Management Reporter 2012.

Se aplica a: Microsoft Management Reporter 2012, Microsoft Dynamics AX 2009, Microsoft Dynamics SL 2011, Microsoft Dynamics GP
Número de KB original: 2744330

Síntomas

Después de restaurar una base de datos de Management Reporter 2012, puede recibir el siguiente error en la Diseñador de informes de Management Reporter 2012:

No se pudo completar la operación debido a un error en el servidor.

Mensaje de error que se recibe en el registro de aplicaciones de Windows Visor de eventos:

System.Data.SqlClient.SqlException (0x80131904): cree una clave maestra en la base de datos o abra la clave maestra en la sesión antes de realizar esta operación. El procedimiento "pEncryptGeneralUserData" intentó devolver un estado NULL, que no está permitido. En su lugar, se devolverá un estado de 0.

Causa

La base de datos de Management Reporter 2012 se cifra mediante información específica del servidor y no se puede realizar una copia de seguridad o restauración sin pasos adicionales.

Solución

El proceso para mover la base de datos de Management Reporter 2012 es el siguiente:

Nota:

Si usa un proveedor de Management Reporter 2012 que usa la base de datos DDM (Dynamic Datamart), no mueva la base de datos DDM. En su lugar, se creará una nueva base de datos mediante el proceso aquí.

  1. Inicie la consola de configuración de Management Reporter 2012.

  2. Seleccione Management Reporter Services.

  3. Registre el nombre de la base de datos que aparece en el encabezado Conexión de base de datos. El nombre de la base de datos aparecerá después del nombre del servidor SQL. Por ejemplo: SQLServer (base de datos)

  4. Registre el nombre de la cuenta de servicio que se usa.

  5. Inicie sesión en SQL Server Management Studio.

  6. Realice una copia de seguridad de la base de datos de Management Reporter 2012 registrada anteriormente en este tema.

  7. Inicie el Diseñador de informes de Management Reporter 2012.

  8. Exporte cada grupo de bloques de creación. Los informes se pueden volver a importar si se produce un error. Para ello, siga estos pasos:

    1. En el menú Empresa , seleccione Crear grupos de bloques.

    2. Seleccione el grupo de bloques de creación que desea exportar.

    3. Seleccione Exportar.

    4. Seleccione todos los bloques de creación que se exportarán en las pestañas Definiciones de informe, Definiciones de fila, Definiciones de columna, Definiciones de árbol de informes. Además, seleccione todos los conjuntos de valores de dimensión.

    5. Seleccione Exportar.

    6. Elija una ubicación para guardar el archivo de .tdbx exportación.

      Nota:

      La ruta de acceso predeterminada en un servidor de Windows Server 2008 es C:\Users\<username>\Documents\Management Reporter\Building Block Groups

    7. Seleccione Cerrar en la ventana Grupos de bloques de creación.

  9. Salga de Management Reporter 2012 Diseñador de informes.

  10. Inicie la consola de configuración de Management Reporter 2012.

  11. En la barra de navegación, seleccione el nombre del servidor SQL Server.

  12. Seleccione Quitar para quitar la integración de ERP.

  13. Seleccione en el símbolo del sistema ¿Está seguro de que desea quitar la integración de ERP?.

  14. En la barra de navegación, seleccione Management Reporter Services.

  15. Seleccione Quitar servicio de proceso.

  16. Seleccione en el símbolo del sistema ¿Está seguro de que desea quitar 'Servicio de procesos de Management Reporter 2012'?.

  17. Seleccione Quitar servicio de aplicación.

  18. Seleccione en el símbolo del sistema ¿Está seguro de que desea quitar 'Servicio de aplicaciones de Management Reporter 2012'?.

  19. Inicie sesión en SQL Server Management Studio.

  20. Realice una copia de seguridad de la base de datos de Management Reporter 2012 registrada anteriormente en este tema.

  21. Inicie sesión en SQL Server Management Studio en el nuevo servidor SQL Server.

  22. Restaure la base de datos de Management Reporter 2012 en el nuevo servidor SQL Server.

  23. Compruebe que la cuenta de servicio de Management Reporter 2012 tenga los permisos correctos en el servidor SQL Server y en la nueva base de datos. Consulte las guías de instalación de Management Reporter en Management Reporter 2012 para Microsoft Dynamics ERP: Guías de instalación, migración y configuración.

  24. Con las instrucciones que se indican aquí, ejecute el siguiente script en la base de datos de Management Reporter 2012 en el nuevo servidor SQL Server:

    --////////////////////////////////////////////////////////////////
    -- 
    -- Script Instructions:
    -- 
    -- 1. Update the line in the following code, starting with 'CREATE MASTER KEY ENCRYPTION BY PASSWORD', to contain the 
    -- Master key you wish to use. The master key must meet the Windows password policy 
    -- requirements of the computer that is running the instance of SQL Server.
    --
    -- 2. Run this script against the Management Reporter 2012 database. This script
    -- will output a message if it does not detect the Management Reporter 2012 database.
    --
    --////////////////////////////////////////////////////////////////
    
    IF EXISTS (SELECT Name FROM sys.tables WHERE Name = 'ControlReportSchedule')
     BEGIN
     IF EXISTS (SELECT TOP(1) name FROM sys.symmetric_keys WHERE name = 'GeneralUserSymmetricKey')
     DROP SYMMETRIC KEY GeneralUserSymmetricKey
    
    IF EXISTS (SELECT TOP(1) name FROM sys.certificates WHERE name = 'GeneralUserCertificate')
     DROP CERTIFICATE GeneralUserCertificate
    
    IF EXISTS (SELECT TOP(1) name FROM sys.symmetric_keys WHERE name = 'ConnectorServiceSymmetricKey')
     DROP SYMMETRIC KEY ConnectorServiceSymmetricKey
    
    IF EXISTS (SELECT TOP(1) name FROM sys.certificates WHERE name = 'ConnectorServiceCertificate') 
     DROP CERTIFICATE ConnectorServiceCertificate
    
    IF EXISTS (SELECT TOP(1) name FROM sys.symmetric_keys WHERE name = '##MS_DatabaseMasterKey##')
     DROP MASTER KEY
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Access!23'
     -- NOTE Where Access!23 is your actual password
    
    CREATE CERTIFICATE [ConnectorServiceCertificate]
     AUTHORIZATION [dbo]
     WITH SUBJECT = N'Certificate for symmetric key encryption - for use by the connector service.'
    
    CREATE CERTIFICATE [GeneralUserCertificate]
     AUTHORIZATION [dbo]
     WITH SUBJECT = N'Certificate for access symmetric keys - for use by users assigned to the GeneralUser Role.'
    
    CREATE SYMMETRIC KEY [ConnectorServiceSymmetricKey]
     AUTHORIZATION [dbo]
     WITH ALGORITHM = AES_256
     ENCRYPTION BY CERTIFICATE [ConnectorServiceCertificate]
    
    CREATE SYMMETRIC KEY [GeneralUserSymmetricKey]
     AUTHORIZATION [dbo]
     WITH ALGORITHM = AES_256
     ENCRYPTION BY CERTIFICATE [GeneralUserCertificate]
    
    IF NOT EXISTS (SELECT TOP(1) name FROM sys.database_principals WHERE name='GeneralUser') 
     BEGIN 
     CREATE ROLE [GeneralUser]
     AUTHORIZATION [dbo]
     END 
    
    GRANT CONTROL ON CERTIFICATE::[GeneralUserCertificate] TO [GeneralUser]
     GRANT VIEW DEFINITION on SYMMETRIC KEY::[GeneralUserSymmetricKey] TO [GeneralUser]
     GRANT CONTROL ON CERTIFICATE::[ConnectorServiceCertificate] TO [GeneralUser]
     GRANT VIEW DEFINITION on SYMMETRIC KEY::[ConnectorServiceSymmetricKey] TO [GeneralUser] 
     UPDATE Connector.Adapter
     SET Settings.modify('declare namespace x="https://www.microsoft.com/2009/Dynamics/Integration";
     replace value of 
     (/SettingsCollection/x:ArrayOfSettingsValue/x:SettingsValue[x:Attributes="Password"]/x:Value/text())[1] 
     with ""')
     UPDATE Connector.MapCategoryAdapterSettings
     SET Settings.modify('declare namespace x="https://www.microsoft.com/2009/Dynamics/Integration";
     replace value of 
    (/SettingsCollection/x:ArrayOfSettingsValue/x:SettingsValue[x:Attributes="Password"]/x:Value/text())[1] 
     with ""')
     END
    ELSE
     BEGIN
     PRINT 'WARNING: Incorrect database selected.'
     Print 'Execute script against the Management Reporter 2012 database.'
     PRINT 'This can be found in the Management Reporter 2012 Configuration Console.'
     END
    

    Nota:

    Si usa Management Reporter 2012 con Microsoft Dynamics AX 2012, ejecute también las siguientes instrucciones SQL para restablecer las jerarquías de la organización en microsoft Management Reporter 2012 Diseñador de informes. Esta información se recuperará de Microsoft Dynamics AX una vez habilitada la nueva integración.

    delete ControlTreeMaster where FolderID in (select FolderID from ControlFolderIntegration)
    delete ControlFolder where ID in (select FolderID from ControlFolderIntegration)
    delete ControlFolderIntegration
    
  25. Inicie la consola de configuración de Microsoft Management Reporter 2012.

  26. En el menú Archivo , seleccione Configurar.

  27. Coloque una comprobación junto a Management Reporter Application Service y Management Reporter Process Service.

  28. Seleccione Siguiente.

  29. Corrija los problemas indicados en la pantalla Validación de requisitos previos y, a continuación, seleccione Siguiente.

  30. En la sección Cuenta de servicio, escriba el nombre de la cuenta de servicio registrada anteriormente. Escriba también la contraseña de la cuenta de servicio.

  31. En la sección Configuración de base de datos, active Conectarse a una base de datos existente.

  32. Escriba el nombre del nuevo SQL Server en el campo Servidor de base de datos.

  33. Seleccione esta opción para usar autenticación de Windows o escriba un nombre de usuario y una contraseña autenticados por SQL.

  34. En la lista desplegable Base de datos, seleccione el nombre de la base de datos de Management Reporter 2012 recién restaurada.

  35. En la sección Servicio de aplicaciones, escriba un número de puerto en el que se ejecutará el servicio de aplicación. Si firewall de Windows está habilitado en el servidor, coloque una comprobación junto a Abrir este puerto en el Firewall de Windows.

  36. Seleccione Siguiente.

  37. Seleccione Configurar.

  38. Seleccione Cerrar en la pantalla Configurar management Reporter cuando se complete el proceso.

  39. En el menú Archivo , seleccione Configurar.

  40. Coloque una comprobación junto al ERP que sea correcta para su entorno.

  41. Seleccione Siguiente.

  42. Siga las instrucciones de ERP para su entorno mediante la guía adecuada en Management Reporter 2012 for Microsoft Dynamics ERP: Installation, Migration, and Configuration Guides (Guía de instalación, migración y configuración) de Management Reporter 2012 for Microsoft Dynamics ERP.

    Nota:

    Si usa un proveedor de Management Reporter 2012 que usa la base de datos de dynamic data mart (DDM), no mueva la base de datos DDM. En su lugar, cree una nueva base de datos de data mart.

  43. Una vez creada correctamente la integración, seleccione Cerrar. Debe completar los pasos siguientes antes de seleccionar Habilitar integración.

  44. En la consola de configuración de Management Reporter 2012, seleccione el nombre de la integración de data mart.

  45. Seleccione Actualizar credenciales de Dynamics XX, donde XX es AX, GP, SL o NAV (en función de Dynamics ERP).

  46. Escriba las credenciales adecuadas para conectarse a la base de datos de Dynamics ERP y, a continuación, seleccione Aceptar.

  47. Seleccione Actualizar credenciales de data mart.

  48. Escriba las credenciales adecuadas que se usarán para actualizar la base de datos de data mart y, a continuación, seleccione Aceptar.

  49. En la consola de configuración de Management Reporter 2012, detenga el servicio de aplicaciones de Management Reporter 2012 y el servicio de procesos de Management Reporter 2012.

  50. En la consola de configuración de Management Reporter 2012, inicie el servicio de aplicaciones de Management Reporter 2012 y el servicio de procesos de Management Reporter 2012.

  51. En la consola de configuración de Management Reporter 2012, seleccione el nombre de la integración de data mart.

  52. Seleccione Habilitar integración.