none
Migrando BD Sql Server 2008 Express R2 para Sql Server 2012 RRS feed

  • Pergunta

  • Bom dia Pessoal!

    Tenho um banco de dados em um servidor rodando em SQL. Server 2008 Express R2, e pretendo transferir BD para uma outra máquina (que possui uma configuração melhor) e ela usará o SQL Server 2012. A princípio eu imaginei que era só importar o BD da base origem e anexar na base destino, não funcionou. Conversando com um pessoal mais técnico tive a informação que como as versões são diferentes eu deveria usar um programa para converter os dados. 

    Será que alguém tem alguma informação que possa me ajudar a fazer esse processo?

    Desde já agradeço a atenção.

    segunda-feira, 26 de maio de 2014 14:11

Respostas

  • Deleted
    segunda-feira, 26 de maio de 2014 14:18
  • Eu até consigo trazer a base completa sem problemas, o erro ocorre quando minha aplicação tenta o acesso ao banco de dados.

    Erro: "Não foi possivel conectar ao servidor. Erro :SQL Server message 916: A entidade de segurança de servidor "      " não pode acessar o banco de dados " " no contexto de segurança atual.(line 1) DB-Library error 10007: General SQL Server error: Check messages from the SQL Server... "

    Como eu disse o pessoal responsável pela aplicação me informou que não basta eu só copiar a base de dados de um servidor para outro eu devo fazer a migração dos dados de uma versão para outra. Tipo como se eu tivesse um banco em Access e migrasse para SQL Server, só que aqui e de uma versão para outra. Eles até fazem isso, mas existe um custo. Eu gostaria de fazer isso sozinho até mesmo para aprender pois eles me passaram que com um pouco de conhecimento em SQL Server isso não é problema e que existe até software free que faz isso. 

    Dessa maneira apelo para esse conceituado fórum.


    Leandro,

    Baseado na mensagem de erro que você indicou, é possível afirmar que você está com problemas de permissão de acesso neste banco de dados.

    Possivelmente o "user" de seu banco de dados não existe no servidor SQL ou o "login" que você está utilizando não possui acesso à este banco de dados.

    Veja o documento abaixo sobre este erro e possíveis soluções no caso de Falha no "login":

    http://msdn.microsoft.com/en-us/library/ee342155.aspx

    Caso o problema esteja relacionado ao "user" no banco de dados (então o login existe e você se conecta normalmente nesta instância SQL), basta você vincular o usuário do "login" da instância com o "user" do seu banco utilizando a procedure de sistema "sp_change_users_login".

    Veja como utilizar esta procedure, no seu caso, com base no KB abaixo:

    http://support.microsoft.com/kb/240872

    Segue um exemplo para restabelecer o vínculo:

    EXEC sp_change_users_login 'Update_One', 'SeuUserBanco', 'SeuLoginSQL';
    GO

    Para maiores informações, veja:

    http://msdn.microsoft.com/en-us/library/ms186717.aspx

    http://msdn.microsoft.com/pt-br/library/ms174378.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    segunda-feira, 26 de maio de 2014 15:17

Todas as Respostas

  • Deleted
    segunda-feira, 26 de maio de 2014 14:18
  • Eu até consigo trazer a base completa sem problemas, o erro ocorre quando minha aplicação tenta o acesso ao banco de dados.

    Erro: "Não foi possivel conectar ao servidor. Erro :SQL Server message 916: A entidade de segurança de servidor "      " não pode acessar o banco de dados " " no contexto de segurança atual.(line 1) DB-Library error 10007: General SQL Server error: Check messages from the SQL Server... "

    Como eu disse o pessoal responsável pela aplicação me informou que não basta eu só copiar a base de dados de um servidor para outro eu devo fazer a migração dos dados de uma versão para outra. Tipo como se eu tivesse um banco em Access e migrasse para SQL Server, só que aqui e de uma versão para outra. Eles até fazem isso, mas existe um custo. Eu gostaria de fazer isso sozinho até mesmo para aprender pois eles me passaram que com um pouco de conhecimento em SQL Server isso não é problema e que existe até software free que faz isso. 

    Dessa maneira apelo para esse conceituado fórum.


    segunda-feira, 26 de maio de 2014 14:40
  • Eu ja tinha visto erro no SQL2008R2:

    http://support.microsoft.com/kb/2539091/pt-br

    Quando você realizou o backup e o recovery da base no SQL2012, ela ficou on-line? O usuário da aplicação tem acesso a esta base? Via MMS, consegue dar um simples "select" em alguma tabela desta base?

    []´s 

    segunda-feira, 26 de maio de 2014 14:46
  • Deleted
    segunda-feira, 26 de maio de 2014 14:47
  • Eu até consigo trazer a base completa sem problemas, o erro ocorre quando minha aplicação tenta o acesso ao banco de dados.

    Erro: "Não foi possivel conectar ao servidor. Erro :SQL Server message 916: A entidade de segurança de servidor "      " não pode acessar o banco de dados " " no contexto de segurança atual.(line 1) DB-Library error 10007: General SQL Server error: Check messages from the SQL Server... "

    Como eu disse o pessoal responsável pela aplicação me informou que não basta eu só copiar a base de dados de um servidor para outro eu devo fazer a migração dos dados de uma versão para outra. Tipo como se eu tivesse um banco em Access e migrasse para SQL Server, só que aqui e de uma versão para outra. Eles até fazem isso, mas existe um custo. Eu gostaria de fazer isso sozinho até mesmo para aprender pois eles me passaram que com um pouco de conhecimento em SQL Server isso não é problema e que existe até software free que faz isso. 

    Dessa maneira apelo para esse conceituado fórum.


    Leandro,

    Baseado na mensagem de erro que você indicou, é possível afirmar que você está com problemas de permissão de acesso neste banco de dados.

    Possivelmente o "user" de seu banco de dados não existe no servidor SQL ou o "login" que você está utilizando não possui acesso à este banco de dados.

    Veja o documento abaixo sobre este erro e possíveis soluções no caso de Falha no "login":

    http://msdn.microsoft.com/en-us/library/ee342155.aspx

    Caso o problema esteja relacionado ao "user" no banco de dados (então o login existe e você se conecta normalmente nesta instância SQL), basta você vincular o usuário do "login" da instância com o "user" do seu banco utilizando a procedure de sistema "sp_change_users_login".

    Veja como utilizar esta procedure, no seu caso, com base no KB abaixo:

    http://support.microsoft.com/kb/240872

    Segue um exemplo para restabelecer o vínculo:

    EXEC sp_change_users_login 'Update_One', 'SeuUserBanco', 'SeuLoginSQL';
    GO

    Para maiores informações, veja:

    http://msdn.microsoft.com/en-us/library/ms186717.aspx

    http://msdn.microsoft.com/pt-br/library/ms174378.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    segunda-feira, 26 de maio de 2014 15:17