PRB: Errore 1314 generati per xp_cmdshell quando vengono eseguiti come utente SA di non

Traduzione articoli Traduzione articoli
Identificativo articolo: 248391 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sintomi

Quando l'esecuzione di un processo operating system tramite xp_cmdshell quando connesso SQL Server come account non-sa, viene visualizzato il seguente errore:
Msg 50001, livello 1, stato 50001
xpsql.c: errore 1314 da LogonUser nella riga 476
In alternativa, potrebbe essere visualizzato quanto segue:
Msg 50001, livello 1, stato 50001
xpsql.c: errore 1314 dal CreateProcessAsUser nella riga 492

Cause

Questi errori vengono generati a causa di diritti di controllo impostare dell'account di SQLAgentCmdExec Windows MSSQLServer è in esecuzione su.

Workaround

Assicurarsi che l'account Windows NT che il servizio MSSQLServer è in esecuzione sia un account di dominio che è un membro del gruppo administrators locale sul server.

Verificare che l'account con cui il servizio MSSQLServer è in esecuzione, come pure SQLServerAgent, l'autorizzazioni diritti utente seguenti:
  • Agire come parte del sistema operativo.
  • Aumentare le quote.
  • sostituzione di token a livello di processo.
  • Accedere come un processo batch.
Assicurarsi inoltre che l'account di SQLAgentCmdExec locale dispone di autorizzazioni "Accesso come un processo batch".

Nota : È necessario riavviare l'intero server, non solo i servizi di SQL, in ordine per le modifiche apportate a diritti utente autorizzazioni effettive.

Informazioni

Xpsql.c è incluso in codice di esempio fornito con il prodotto. L'errore nella riga 476 ottiene generato se la chiamata alla funzione API Win32: LogonUser() ha esito negativo. L'errore su 492 ottiene generato se la chiamata a CreateProcessAsUser() avrà esito negativo.

Errore 1314 è ERROR_PRIVILEGE_NOT_HELD. Questo indica che l'account di chiamata di queste funzioni non dispone di diritti utente sufficienti per completare l'account di accesso. Questa operazione, molti clienti di reimpostare i privilegi dell'account dell'account SQLAgentCmdExec o ricrearlo tramite User Manager o SQL Enterprise Manager.

Tuttavia, che cosa stia generando questi errori è il processo che richiama le chiamate API (sqlservr.exe). Pertanto, è l'account con cui il servizio MSSQLServer è in esecuzione che contiene i privilegi insufficienti e non corretti. Per eseguire correttamente LogonUser() , l'account di MSSQLServer è necessario affinché il SE_TCB_NAME (Agisci come parte del sistema operativo) a destra è attivata. Per eseguire correttamente CreateProcessAsUser(), l'account di MSSQLServer deve disporre dei diritti (Aumenta quote) SE_INCREASE_QUOTA_NAME attivati.

Nota : per alcuni tipi di processi, CreateProcessAsUser() può richiedere anche SE_ASSIGNPRIMARYTOKEN_NAME (Sostituisci un token a livello di processo) per essere attivato su.

Proprietà

Identificativo articolo: 248391 - Ultima modifica: venerdì 17 ottobre 2003 - Revisione: 3.1
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Chiavi: 
kbmt kbbug kbprb KB248391 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 248391
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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