Compartilhar via


Características de execução de procedimentos armazenados estendidos

Observação importanteImportante

Esse recurso será removido em uma versão futura de Microsoft SQL Server. Não utilize esse recurso em desenvolvimentos novos e planeje modificar, assim que possível, os aplicativos que atualmente o utilizam. Use a Integração CLR em vez disso.

A execução de um procedimento armazenado estendido tem as seguintes características:

  • A função de procedimento armazenado estendido é executada no contexto de segurança do MicrosoftSQL Server.

  • A função de procedimento armazenado estendido é executada no espaço de processo do SQL Server.

  • O thread associado com a execução do procedimento armazenado estendido é igual ao usado na conexão do cliente.

    Observação sobre segurançaObservação sobre 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.

Depois que a DLL do procedimento armazenado estendido é carregada, ela permanece carregada no espaço de endereço do servidor até que o SQL Server seja interrompido ou o administrador a descarregue explicitamente usando o DBCC DLL_name (FREE).

O procedimento armazenado estendido pode ser executado a partir do Transact-SQL como um procedimento armazenado usando a instrução EXECUTE:

EXECUTE @retval = xp_extendedProcName @param1, @param2 OUTPUT

Parâmetros

  • @ retval
    É um valor de retorno.

  • @ param1
    É um parâmetro de entrada.

  • @ param2
    É um parâmetro de entrada/saída.

    Observação sobre cuidadosCuidado

    Os procedimentos armazenados estendidos oferecem aprimoramentos de desempenho e estendem a funcionalidade do SQL Server. Porém, como a DLL do procedimento armazenado estendido e o SQL Server compartilham o mesmo espaço de endereço, um procedimento problemático pode afetar adversamente o funcionamento do SQL Server. Embora as exceções lançadas pela DLL do procedimento armazenado estendido sejam tratadas pelo SQL Server, é possível danificar áreas de dados do SQL Server. Como precaução de segurança, apenas os administradores do sistema do SQL Server podem adicionar procedimentos armazenados estendidos ao SQL Server. Esses procedimentos devem ser extensivamente testados antes ser instalados.