MSSQL Service Broker di attivazione “Esegui come auto”
-
23-08-2019 - |
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?
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.