Condividi tramite


Stored procedure estese

Nota importanteImportante

Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa caratteristica in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Utilizzare invece Integrazione con CLR, descritta nell'argomento CLR Integration (informazioni in lingua inglese).

Le stored procedure estese consentono di creare routine esterne personalizzate in un linguaggio di programmazione quale C. Le stored procedure estese appaiono come stored procedure normali e vengono eseguite in modo analogo. È possibile passare parametri alle stored procedure estese e queste possono restituire risultati e uno stato.

Le stored procedure estese sono DLL che possono essere caricate ed eseguite in modo dinamico da un'istanza di SQL Server. Le stored procedure estese vengono eseguite direttamente nello spazio degli indirizzi di un'istanza di SQL Server e vengono programmate tramite l'API Extended Stored Procedure di SQL Server.

Nota

È consigliabile evitare l'utilizzo delle stored procedure estese per creare istanze di Common Language Runtime (CLR) di Microsoft .NET Framework ed eseguire codice gestito. Questo scenario non sarà supportato nelle prossime versioni di SQL Server. La funzionalità Integrazione con CLR offre un'alternativa più affidabile e sicura alla scrittura di stored procedure estese.

Dopo che una stored procedure estesa è stata scritta, i membri del ruolo predefinito del server sysadmin la possono registrare nell'istanza di SQL Server e concedere autorizzazioni ad altri utenti per l'esecuzione della procedura. Le stored procedure estese possono essere aggiunte soltanto al database master.

Nota

Le stored procedure estese possono produrre perdite di memoria o altri problemi che riducono le prestazioni e l'affidabilità del server. È consigliabile valutare l'opportunità di archiviare le stored procedure estese in un'istanza di SQL Server distinta dall'istanza contenente i dati di riferimento. Valutare inoltre l'opportunità di utilizzare query distribuite per accedere al database. Per ulteriori informazioni, vedere Query distribuite.

Protezione

Prima di aggiungere stored procedure estese al server e concedere le autorizzazioni di esecuzione ad altri utenti, è necessario che l'amministratore di sistema esamini con attenzione ogni stored procedure estesa per verificare che non contenga codice dannoso o malware.

Rispettare le ulteriori linee guida sulla protezione seguenti:

  • Verificare sempre la validità dell'input degli utenti.

  • Non concatenare l'input dell'utente prima di convalidarlo.

  • Non eseguire mai un comando costruito tramite input dell'utente non convalidato. Per ulteriori informazioni, vedere Attacco intrusivo nel codice SQL.