Procedimentos armazenados estendidos

Observação importanteImportante

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.Use Integração CLR em vez disto.

Os procedimentos armazenados estendidos permitem que você crie suas próprias rotinas externas em uma linguagem de programação, como C. Os procedimentos armazenados estendidos aparecem para o usuário como procedimentos armazenados comuns e são executados como estes. Os parâmetros podem ser passados a procedimentos armazenados estendidos e os procedimentos armazenados estendidos podem retornar resultados e status.

Os procedimentos armazenados estendidos são DLLs que podem ser carregados e executados dinamicamente por uma instância do SQL Server. Os procedimentos armazenados estendidos são executados diretamente no espaço de endereçamento de uma instância do SQL Server e são programados por meio da API do procedimento armazenado estendido do SQL Server.

ObservaçãoObservação

Os procedimentos armazenados estendidos não devem ser usados para instanciar o tempo de execução de linguagem comum do Microsoft .NET Framework nem para executar código gerenciado. Esse cenário não terá suporte nas versões futuras do SQL Server. A integração CLR fornece uma alternativa mais robusta e segura para gravar procedimentos armazenados estendidos.

Depois de um procedimento armazenado estendido ter sido gravado, os membros da função de servidor fixa sysadmin podem registrar o procedimento armazenado estendido com a instância do SQL Server e, depois, conceder permissão a outros usuários para executar o procedimento. Os procedimentos armazenados estendidos só podem ser adicionados ao banco de dados mestre.

ObservaçãoObservação

Os procedimentos armazenados estendidos podem produzir vazamentos de memória ou outros problemas que reduzem o desempenho e confiabilidade do servidor. Você deve pensar em armazenar os procedimentos armazenados estendidos em uma instância do SQL Server que seja separada da instância que contém os dados referenciados. Você também deve considerar o uso de consultas distribuídas para acessar o banco de dados. Para obter mais informações, consulte Consultas distribuídas.

Segurança

Antes de adicionar procedimentos armazenados estendidos ao servidor e conceder permissões de execução a outros usuários, o administrador do sistema deve examinar detalhadamente cada procedimento armazenado estendido para certificar-se de que ele não contém código nocivo ou mal-intencionado.

As diretrizes de segurança adicionais são as seguintes:

  • Valide todas as entradas de usuário.

  • Não concatene uma entrada de usuário antes de validá-la.

  • Nunca execute um comando construído a partir de uma entrada de usuário inválida. Para obter mais informações, consulte Injeção SQL.