Logons de usuário e permissões em um banco de dados podem estar incorretas depois que o banco de dados for restaurado

Traduções deste artigo Traduções deste artigo
ID do artigo: 168001 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Se um despejo de um banco de dados de usuário do SQL Server é restaurado para um servidor SQL diferente (como um servidor de backup ativo) ou para o mesmo SQL Server após a recriação ou recarregar uma versão antiga do banco de dados mestre, logons de usuário e permissões no banco de dados podem estar incorretas.

Esse problema pode revelar próprio de várias maneiras:
  • Ao fazer logon em um servidor 6.x, os usuários podem receber o seguinte erro:
    Msg 4002, nível 14, estado 1, servidor Microsoft SQL Server, linha 0
    Falha de logon
    Biblioteca de banco de dados: Logon incorreto.
  • Ao fazer logon em um servidor 7.0, os usuários podem receber o seguinte erro:
    Msg 18456, nível 14, estado 1,
    Falha de logon do usuário '% 1!'.
  • Ao tentar acessar objetos no banco de dados, os usuários podem receber o seguinte erro:
    Msg 229, nível 14, estado 1
    %s permissão negada no objeto %. * s, o banco de dados %. * s, %.*s proprietário
  • Ao tentar criar um logon e conceder acesso a banco de dados restaurado ou adicionar o usuário ao banco de dados, o seguinte erro pode ser recebido:
    Microsoft SQL-DMO (SQLState ODBC: 42000) erro 15023: usuário ou função '% s' já existe no banco de dados atual.
  • Usuários podem ter permissões em objetos para o qual eles anteriormente não.

Causa

Informações de logon do usuário são armazenadas na tabela syslogins no banco de dados mestre. Alterando servidores, ou alterar essas informações por recriar ou restaurar uma versão antiga do banco de dados mestre, as informações podem ser diferentes do que o despejo de banco de dados do usuário foi criado. Se não existem logons para os usuários, eles receberão um erro indicando "Falha de login" ao tentar fazer logon servidor. Se existem logons do usuário, mas o SUID valores (para 6.x) ou valores SID (7.0) no mestresyslogins e a tabela de sysusers no banco de dados usuário diferem, os usuários podem ter permissões diferentes que o esperado no banco de dados do usuário.

Observação Se você estiver usando o Microsoft SQL Server 2005, a tabela syslogins e a tabela de sysusers são implementadas como modos de exibição de compatibilidade. Essas exibições são sys.syslogins e sys.sysusers . Para obter mais informações sobre modos de exibição de compatibilidade, consulte o tópico "Compatibilidade Views (Transact-SQL)" nos manuais online do SQL Server 2005.

Como Contornar

Para contornar este problema, siga um destes procedimentos:
  • Se scripts atuais estão disponíveis para adicionar logons, usuários e permissões, soltar e recriá-los de scripts. Para obter exemplos de uso de scripts para transferir os logins entre servidores, consulte o seguinte artigo Microsoft Knowledge Base:
    246133COMO: Transferir logins e senhas entre instâncias do SQL Server
    240872Como resolver problemas de permissão quando um banco de dados é movido entre SQL Servers
  • Você pode usar o procedimento armazenado sp_change_users_login para reassociar os relacionamentos entre as tabelas syslogins sysusers e sysalternates. No entanto, o procedimento faz melhores estimativas em links e pode permitir que um usuário mais privilégios de acesso que o previsto. Executar o procedimento com a opção de relatório primeiro irá gerar uma lista de usuários que serão alterados. Posteriormente, você deve verificar para garantir que os usuários afetados tenham as permissões apropriadas. Além disso, lembre-se de que o procedimento sp_change_users_login não corrige problemas de permissão derivados de logons e usuários criados em uma ordem diferente no banco de dados onde o backup é restaurado.
  • Restaure um despejo do banco de dados mestre do horário de despejo de banco de dados de usuário para o servidor antes de carregar o banco de dados de usuário. Isso garante que todas as informações de usuário no banco de dados de usuários correspondem às corretamente com a tabela syslogins no mestre.

    Aviso : O banco de dados mestre contém informações de todo o servidor e afeta todos os bancos de dados no servidor. Restaurando o banco de dados mestre, você pode encontrar identificações de usuário adicionais e/ou em bancos de dados que são perdidas ou têm permissões incorretas. Alterações para o mestre que tenham ocorrido desde o momento do backup serão perdidas. Use este método somente se você tiver certeza de que a versão de backup do banco de dados mestre contém informações precisas para o banco de dados de usuário em questão e todos os outros bancos de dados no servidor.
  • Transferência de uso Gerenciador (para 6.x) ou DTS (para 7.0) para copiar os logons. Esteja ciente de que as senhas não serão transferidas usando esse método.
  • Entre em contato com seu provedor de suporte primário.

Propriedades

ID do artigo: 168001 - Última revisão: terça-feira, 28 de março de 2006 - Revisão: 5.3
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Palavras-chave: 
kbmt kbprb kbusage KB168001 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 168001

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com