Domanda

Ho un Service Broker attivato procdedure memorizzato che funziona benissimo quando eseguito in studio gestione. Tuttavia, quando viene attivato sulla coda, il registro errori di SQL Server mostra il seguente messaggio:

"The activated proc [dbo].[FileUploadAsyncWorker] running on queue
AsyncProcessing.dbo.FileUploadRequestQueue output the following:  'You do not have
permission to use the bulk load statement."

Credo che la dichiarazione 'incriminata' in FileUploadAsyncWorker è:     inserire in fileContent (nome del file, contenuto)     selezionare @nomefile, contenuti     FROM OPENROWSET (bulk ...

Come faccio a dire in base al quale account utente la stored procedure è in esecuzione?

È stato utile?

Soluzione

Che la stored procedure inserire il nome utente in una tabella:

CREATE TABLE mytemptable (username varchar(max))    
INSERT INTO [MyTempTable] SELECT user

La mia ipotesi è che la SP verrà eseguito come l'account del servizio di SQL Server.

È inoltre possibile utilizzare il Profiler SQL per scoprire l'account che sta eseguendo il tuo sp.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top