DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 248391 - Última revisão: sexta-feira, 17 de outubro de 2003 - Revisão: 3.1

 

Sintomas

Você receber o seguinte erro ao executar um trabalho de sistema operacional através de xp_cmdshell quando conectado ao SQL Server como uma conta sa não:
Msg 50001, nível 1, estado 50001
xpsql.c: erro 1314 do LogonUser na linha 476
Como alternativa, você pode receber o seguinte:
Msg 50001, nível 1, estado 50001
xpsql.c: erro 1314 do CreateProcessAsUser na linha 492

Causa

Esses erros são gerados devido a seus direitos errôneo definir na conta SQLAgentCmdExec Windows NT que MSSQLServer esteja sendo executado no.

Como Contornar

Verifique se a conta do serviço MSSQLServer em execução no Windows NT é uma conta de domínio que seja um membro do grupo Administradores local no servidor.

Certifique-se que a conta que o serviço MSSQLServer está em execução, bem como SQLServerAgent, possui as seguintes permissões direitos de usuário:
  • Agir como parte do sistema operacional.
  • Aumente cotas.
  • Substituir token no nível de processo.
  • Faça logon como um trabalho em lotes.
Além disso, verifique se a conta SQLAgentCmdExec local tem permissões "Fazer logon como um trabalho em lotes".

Observação : você deve reiniciar o servidor inteiro, não apenas os serviços do SQL, em ordem para as alterações feitas para direitos de usuário permissões em vigor.

Mais Informações

Xpsql.c está incluído no código de exemplo que acompanha o produto. O erro na linha 476 obtém gerado se a chamada para a função de API do Win32: LogonUser() falhar. O erro em 492 obtém gerado se a chamada para CreateProcessAsUser() falhar.

Erro 1314 é ERROR_PRIVILEGE_NOT_HELD. Isso indica que a conta chamar essas funções não tem direitos de usuário suficientes para concluir o logon. Isso leva muitos clientes para redefinir os privilégios de conta na conta SQLAgentCmdExec ou recriá-lo através do Gerenciador de usuários ou SQL Enterprise Manager.

No entanto, o que está aumentando esses erros é o processo que está chamando as chamadas de API (Sqlservr.exe). Portanto, é a conta que o serviço MSSQLServer esteja sendo executado no que contém os privilégios incorretos e insuficientes. Para executar com êxito LogonUser() , a conta MSSQLServer precisa ter SE_TCB_NAME (funcionar como parte do sistema operacional) para a direita ativado. Para executar com êxito CreateProcessAsUser(), conta MSSQLServer precisa ter direitos de (Aumentar cotas) SE_INCREASE_QUOTA_NAME habilitados.

Observação : para determinados tipos de processos, CreateProcessAsUser() também podem requerer SE_ASSIGNPRIMARYTOKEN_NAME (substituir um token no nível de processo) para ser ativado no.

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Palavras-chave: 
kbmt kbbug kbprb KB248391 KbMtpt
Tradução automáticaTraduçã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: 248391  (http://support.microsoft.com/kb/248391/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store