Procedimientos almacenados extendidos

Nota importanteImportante

Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Use en su lugar la integración CLR.

Los procedimientos almacenados extendidos permiten crear rutinas externas propias en un lenguaje de programación como C. Estos procedimientos se muestran ante los usuarios como procedimientos almacenados normales y se ejecutan del mismo modo. Es posible pasar parámetros a procedimientos almacenados extendidos y éstos pueden devolver resultados y estados.

Los procedimientos almacenados extendidos son DLL que una instancia de SQL Server puede cargar y ejecutar dinámicamente. Estos procedimientos se ejecutan directamente en el espacio de dirección de una instancia de SQL Server y se programan mediante la API Procedimientos almacenados extendidos de SQL Server.

[!NOTA]

Los procedimientos almacenados extendidos no se deben utilizar para crear instancias de Common Language Runtime de Microsoft .NET Framework ni ejecutar código administrado. Este escenario no se admitirá en versiones futuras de SQL Server. Integración CLR proporciona una alternativa más sólida y segura a la escritura de procedimientos almacenados extendidos.

Una vez que se ha escrito un procedimiento almacenado extendido, los miembros de la función fija de servidor sysadmin pueden registrar el procedimiento almacenado extendido con la instancia de SQL Server y, a continuación, otorgar permiso a otros usuarios para que lo ejecuten. Los procedimientos almacenados extendidos sólo se pueden agregar a la base de datos master.

[!NOTA]

Los procedimientos almacenados extendidos pueden producir fugas de memoria u otros problemas que reducen el rendimiento y la confiabilidad del servidor. Debe considerarse la posibilidad de almacenar procedimientos almacenados extendidos en una instancia de SQL Server independiente de la instancia que contiene los datos a los que hace referencia. También se debe considerar la posibilidad de utilizar consultas distribuidas para tener acceso a la base de datos. Para obtener más información, vea Consultas distribuidas.

Seguridad

Antes de agregar procedimientos almacenados extendidos al servidor y otorgar permisos de ejecución a otros usuarios, el administrador del sistema debe revisar por completo cada procedimiento almacenado extendido para asegurarse de que no contiene código perjudicial o dañino.

Entre las directrices de seguridad adicionales se incluyen las siguientes:

  • Validar toda entrada de usuario.

  • No concatenar ninguna entrada de usuario antes de validarla.

  • No ejecutar nunca un comando creado a partir de una entrada de usuario no validada. Para obtener más información, vea Inyección de código SQL.