/ / Classic ASP - Quale utente ha bisogno di autorizzazioni di esecuzione concesse per la stored procedure - sql-server, iis, stored-procedures, asp-classic, perm-database

ASP classico - Quale utente ha bisogno di autorizzazioni di esecuzione concesse per la stored procedure - sql-server, iis, stored-procedures, asp-classic, perm-database

Ho una classica applicazione ASP in esecuzioneIIS (v8.5.9600) su Windows Server 2012R2. Una delle pagine utilizza un controllo di caricamento file che consente a un utente di caricare un file di dati che deve essere elaborato dal sistema. Una volta caricato il file, viene eseguita una stored procedure che prende il nome del file caricato e lo inserisce in una tabella.

Alcuni dei miei utenti hanno ricevuto un messaggio di errore dopo aver caricato il file. Controllando il registro di IIS vedo l'errore è il seguente ...

244|80040e09|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]The_EXECUTE_permission_was_denied_on_the_object_"myStoredProcedureName"__database_"myDatabaseName"__schema_"dbo".,

Dalla lettura di altri articoli sembra che ho bisogno di concedere autorizzazioni di esecuzione a questa stored procedure specifica. La mia domanda è questa ..

  1. Quale utente ha bisogno delle autorizzazioni di esecuzione? È l'utente che specifica la connessione al database o è l'utente con cui viene eseguito il sito Web tramite IIS?
  2. Questo errore non si verifica con la maggior parte degli utenti. Sembra che si stia verificando solo con alcuni utenti che caricano file. Se il problema riguardava le autorizzazioni, non dovrebbe verificarsi con tutti gli utenti?

risposte:

2 per risposta № 1

webworm - molte grazie.

Il permesso di esecuzione deve essere fornito all'utente nella stringa di connessione.

L'utente che manipola il database è quelloquello è menzionato nella stringa di connessione. È possibile utilizzare più stringhe di connessione, ovviamente, per diverse parti dell'applicazione, collegandosi a molti database diversi, anche se questo può diventare un incubo da gestire. Raccomando di creare tutte le stringhe di connessione in global.asa e limitando gli account utente SQL al minor numero possibile. È più facile dare allo stesso account l'accesso a più database sullo stesso server ...