Erro "A operação não pôde ser concluída" ao restaurar um banco de dados do Microsoft Management Reporter 2012

Este artigo fornece uma resolução para a operação que não pôde ser concluída quando você restaura um banco de dados do Microsoft Management Reporter 2012.

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

Sintomas

Depois de restaurar um banco de dados do Management Reporter 2012, você poderá receber o seguinte erro no Management Reporter 2012 Report Designer:

A operação não pôde ser concluída devido a uma falha no servidor.

Mensagem de erro recebida no log do Aplicativo do Windows Visualizador de Eventos:

System.Data.SqlClient.SqlException (0x80131904): crie uma chave master no banco de dados ou abra a chave master na sessão antes de executar essa operação. O procedimento 'pEncryptGeneralUserData' tentou retornar uma status de NULL, o que não é permitido. Uma status de 0 será retornada.

Motivo

O banco de dados Do Management Reporter 2012 é criptografado usando informações específicas do servidor e não pode ser feito backup/restauração sem etapas adicionais.

Resolução

O processo para mover o banco de dados do Management Reporter 2012 é o seguinte:

Observação

Se você estiver usando um provedor do Management Reporter 2012 que usa o banco de dados DDM (Dynamic Datamart), não mova o banco de dados DDM. Em vez disso, um novo banco de dados será criado usando o processo aqui.

  1. Inicie o Console de Configuração do Management Reporter 2012.

  2. Selecione Serviços de Repórter de Gerenciamento.

  3. Registre o nome do banco de dados listado no título conexão banco de dados. O nome do banco de dados será listado após o nome do SQL Server. Por exemplo: SQLServer (Banco de Dados)

  4. Registre o nome da Conta de Serviço usada.

  5. Entre no SQL Server Management Studio.

  6. Faça backup do banco de dados do Management Reporter 2012 registrado anteriormente neste tópico.

  7. Inicie o Report Designer do Management Reporter 2012.

  8. Exporte cada grupo de blocos de construção. Os relatórios podem ser reimportados se ocorrer uma falha. Você pode fazer isso seguindo estas etapas:

    1. No menu Empresa , selecione Criar Grupos de Blocos.

    2. Selecione o grupo de blocos de construção a ser exportado.

    3. Selecione Exportar.

    4. Selecione todos os blocos de construção a serem exportados nas guias Definições de Relatório, Definições de Linha, Definições de Coluna, Definições de Árvore de Relatórios. Além disso, selecione todos os Conjuntos de Valor de Dimensão.

    5. Selecione Exportar.

    6. Escolha um local para salvar o arquivo de .tdbx exportação.

      Observação

      O caminho padrão em um servidor do Windows Server 2008 é C:\Users\<username>\Documents\Management Reporter\Building Block Groups

    7. Selecione Fechar na janela Grupos de Blocos de Construção.

  9. Exit Management Reporter 2012 Report Designer.

  10. Inicie o Console de Configuração do Management Reporter 2012.

  11. Na barra de navegação, selecione o nome do SQL Server.

  12. Selecione Remover para remover a integração do ERP.

  13. Selecione Sim para o prompt Você tem certeza de que deseja remover a Integração ERP?.

  14. Na barra de navegação, selecione Serviços de Repórter de Gerenciamento.

  15. Selecione Remover Serviço de Processo.

  16. Selecione Sim para o prompt Você tem certeza de que deseja remover 'Management Reporter 2012 Process Service'?.

  17. Selecione Remover Serviço de Aplicativo.

  18. Selecione Sim para o prompt Você tem certeza de que deseja remover 'Management Reporter 2012 Application Service'?.

  19. Entre no SQL Server Management Studio.

  20. Faça backup do banco de dados do Management Reporter 2012 registrado anteriormente neste tópico.

  21. Entre no SQL Server Management Studio no novo SQL Server.

  22. Restaure o banco de dados Management Reporter 2012 no novo SQL Server.

  23. Verifique se a conta de serviço do Management Reporter 2012 tem as permissões corretas no SQL Server e no novo banco de dados. Consulte os guias de instalação do Management Reporter no Management Reporter 2012 para Microsoft Dynamics ERP: Guias de instalação, migração e configuração.

  24. Usando as instruções aqui, execute o seguinte script no banco de dados Management Reporter 2012 no novo 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
    

    Observação

    Se usar o Management Reporter 2012 com o Microsoft Dynamics AX 2012, execute também as seguintes instruções SQL para redefinir as hierarquias da organização no Microsoft Management Reporter 2012 Report Designer. Essas informações serão recuperadas do Microsoft Dynamics AX assim que a nova integração estiver habilitada.

    delete ControlTreeMaster where FolderID in (select FolderID from ControlFolderIntegration)
    delete ControlFolder where ID in (select FolderID from ControlFolderIntegration)
    delete ControlFolderIntegration
    
  25. Inicie o Console de Configuração do Microsoft Management Reporter 2012.

  26. No menu Arquivo , selecione Configurar.

  27. Coloque um marcar ao lado do Serviço de Processo do Management Reporter Application Service e do Management Reporter.

  28. Selecione Avançar.

  29. Corrija todos os problemas observados na tela Validação do Pré-requisito e selecione Avançar.

  30. Na seção Conta de Serviço, insira o nome da conta de serviço registrada anteriormente. Insira também a senha da conta de serviço.

  31. Na seção Configuração do Banco de Dados, coloque um marcar em Conectar a um banco de dados existente.

  32. Insira o nome do novo SQL Server no campo Servidor de banco de dados.

  33. Selecione para usar autenticação do Windows ou insira um nome de usuário e uma senha autenticados do SQL.

  34. Na lista suspensa Banco de Dados, selecione o nome do banco de dados do Management Reporter 2012 recém-restaurado.

  35. Na seção Serviço de Aplicativo, insira um número de porta para o serviço de aplicativo ser executado. Se o Firewall do Windows estiver habilitado no servidor, coloque um marcar ao lado de Abrir essa porta no Firewall do Windows.

  36. Selecione Avançar.

  37. Selecione Configurar.

  38. Selecione Fechar na tela Configurar Repórter de Gerenciamento quando o processo for concluído.

  39. No menu Arquivo , selecione Configurar.

  40. Coloque um marcar ao lado do ERP que esteja correto para seu ambiente.

  41. Selecione Avançar.

  42. Siga as instruções do ERP para seu ambiente usando o guia apropriado no Management Reporter 2012 para Microsoft Dynamics ERP: Guias de instalação, migração e configuração.

    Observação

    Se você usar um provedor do Management Reporter 2012 que usa o banco de dados DDM (Dynamic Data mart), não mova o banco de dados DDM. Em vez disso, crie um novo banco de dados do data mart.

  43. Depois que a integração tiver sido criada com êxito, selecione Fechar. Você deve concluir as etapas abaixo antes de selecionar Habilitar Integração.

  44. No Console de Configuração do Management Reporter 2012, selecione o nome da integração do data mart.

  45. Selecione Atualizar credenciais do Dynamics XX, em que XX é AX, GP, SL ou NAV (dependendo do Dynamics ERP).

  46. Insira as credenciais apropriadas para se conectar ao banco de dados Dynamics ERP e selecione OK.

  47. Selecione Atualizar credenciais do data mart.

  48. Insira as credenciais apropriadas a serem usadas para atualizar o banco de dados do data mart e selecione OK.

  49. No Console de Configuração do Management Reporter 2012, pare o Serviço de Aplicativo do Management Reporter 2012 e o Serviço de Processo do Management Reporter 2012.

  50. No Console de Configuração do Management Reporter 2012, inicie o Serviço de Aplicativo do Management Reporter 2012 e o Serviço de Processo do Management Reporter 2012.

  51. No Console de Configuração do Management Reporter 2012, selecione o nome da integração do data mart.

  52. Selecione Habilitar Integração.