DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 248391 - Última revisão: sexta-feira, 17 de Outubro de 2003 - Revisão: 3.1

 

Sintomas

Recebe o erro seguinte quando executar uma tarefa de sistema operativo através de xp_cmdshell quando inicia sessão no SQL Server como uma conta não sa:
Msg 50001, nível 1, estado 50001
xpsql.c: erro 1314 de LogonUser linha 476
Em alternativa, poderá receber o seguinte:
Msg 50001, nível 1, estado 50001
xpsql.c: erro 1314 de CreateProcessAsUser linha 492

Causa

Estes erros são desencadeados devido a direitos de erro definir a conta SQLAgentCmdExec Windows NT MSSQLServer em execução no.

Como contornar

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

Certifique-se a conta que o serviço MSSQLServer está em execução, bem como SQLServerAgent, tem as permissões de direitos de utilizador seguintes:
  • Actuar como parte do sistema operativo.
  • Aumente quotas.
  • Substituir token de nível de processo.
  • Inicie sessão como tarefa batch.
Além disso, certifique-se que a conta SQLAgentCmdExec local tem permissões "Iniciar sessão como tarefa batch".

Nota : tem de reiniciar todo o servidor, não apenas os serviços de SQL, ordem para que as alterações efectuadas a direitos de utilizador permissões para o efeito.

Mais Informação

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

Erro 1314 é ERROR_PRIVILEGE_NOT_HELD. Isto indica que a conta de chamar estas funções não tem direitos de utilizador suficientes para concluir o início de sessão. Isto leva muitos clientes para repor os privilégios de conta na conta SQLAgentCmdExec ou recriá-lo através do Gestor de utilizadores ou SQL Enterprise Manager.

No entanto, o que está a aumentar estes erros é o processo que está a invocar as chamadas de API (Sqlservr.exe). Por conseguinte, é a conta serviço MSSQLServer em execução no que possui os privilégios insuficientes e incorrectos. Para executar com êxito LogonUser() , a conta de MSSQLServer tem de ter SE_TCB_NAME (actuar como parte do sistema operativo) activado para a direita. Para executar com êxito CreateProcessAsUser(), a conta de MSSQLServer tem de ter os direitos de (Aumentar quotas) SE_INCREASE_QUOTA_NAME activados.

Nota : para determinados tipos de processos, CreateProcessAsUser() poderá também necessitar SE_ASSIGNPRIMARYTOKEN_NAME (substituir um token de nível de processo) para ser activado 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 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: 248391  (http://support.microsoft.com/kb/248391/en-us/ )
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft