CORRECÇÃO: xp_enumgroups gera uma violação de acesso quando transmitidos um parâmetro grande

Traduções de Artigos Traduções de Artigos
Artigo: 294338 - Ver produtos para os quais este artigo se aplica.
N.º DE BUGS: 351927 (SHILOH_BUGS)
Expandir tudo | Reduzir tudo

Sintomas

xp_enumgroups fornece uma lista de grupos locais do Microsoft Windows NT ou uma lista de grupos globais definidos num domínio Windows NT especificado, fornecido pelo parâmetro.

Se um parâmetro grande é transmitido ao procedimento xp_enumgroups armazenados, é gerada uma violação de acesso e termina a ligação com as mensagens de erro que se seguem:
ODBC: Erro 0, o nível de 19, State 1
SqlDumpExceptionHandler: Processo 53 gerou excepção fatal EXCEPTION_ACCESS_VIOLATION c0000005. SQL Server está a terminar este processo.

ODBC: Erro 0, o nível de 20, State 1
Função armazenada xp_enumgroups na biblioteca 'xplog70.dll' gerado um erro de violação de acesso. SQL Server está a terminar processo 53.

Ligação quebrada
Se o tamanho da cadeia transmitida como um parâmetro for muito maior a violação de acesso pára o serviço SQL Server. A mensagem de erro que ocorre é semelhante a:
[Microsoft][Controlador ODBC SQL Server][DBMSLPCN]ConnectionCheckForData (CheckforData()).
Servidor: Erro 11, nível de 16, estado 1, linha 0
Erro geral de rede. Consulte a documentação da rede.

Resolução

Para resolver este problema, obtenha o service pack mais recente do SQL Server 2000. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
290211INF: How to Obtain the Latest SQL Server 2000 Service Pack

Ponto Da Situação

A Microsoft confirmou que este é um problema no SQL Server 2000. Este problema foi corrigido pela primeira vez no SQL Server 2000 Service Pack 1.

Mais Informação

Este problema só ocorre se o tamanho da cadeia é denominada por xp_enumgroups for maior do que 228 bytes. O texto exacto da mensagem de erro pode variar consoante o tamanho da cadeia a ser transmitido.

Por exemplo, se a cadeia de bytes 229, apresenta esta mensagem de erro:
Servidor: Erro 3624, 20 de nível 1 de estado, procedimento xp_enumgroups, linha 1

Localização: dbccdll.cpp:516
Expressão: pElem == pesquisa (pElem-> m_DLLName.m_str)
SPID: 51
Processar ID: 768

Ligação quebrada
passos para reproduzir o comportamento

Pode utilizar o seguinte para reproduzir o problema.

  • Para causar uma violação de acesso a ocorrer, utilize este código:
    xp_enumgroups 'Scanning directory [C:\*]
    Scanning directory [C:\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\*]
    Scanning directory [C:\cmdcons\*]
    Scanning directory [C:\*]'
    						
  • Para causar uma violação de acesso ocorrer e também provocar a parar a utilização do serviço SQL Server este código:
    xp_enumgroups 'Scanning directory [C:\*]
    Scanning directory [C:\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\*]
    Scanning directory [C:\cmdcons\*]
    Scanning directory [C:\*]
    Scanning directory [C:\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\APSETUP\*]
    Scanning directory [C:\*]
    Scanning directory [C:\cmdcons\*]
    Scanning directory [C:\*]'
    						

Propriedades

Artigo: 294338 - Última revisão: 6 de novembro de 2003 - Revisão: 3.2
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB294338 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 294338

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