You are on page 1of 12

Crear y usar procedimientos

almacenados
El propsito de los procedimientos almacenados.
Crear procedimientos almacenados en el GUI.
Crear procedimientos almacenados usando el DDL
(Lenguaje de Definicin de Datos)
Ejecutar un procedimiento almacenado
Entender SQL Injection.
Crear y usar procedimientos
almacenados
Los procedimientos almacenados son bsicamente archivos
batch o scripts que le ordenan a SQL Server ejecutar una
serie de comandos en un orden determinado.
Un buen modo de modularizar los procesos especficos y
procedimientos.
Pueden aceptar entradas y generar salidas.
Se ejecutan en el servidor, el cual reduce el procesamiento en
las computadoras clientes y en las aplicaciones clientes (claro,
el trabajo ahora lo realiza el servidor)

Procedimientos almacenados
Conveniencia: envuelve la, en algunos casos, lgica compleja de
negocios en una simple unidad, fcil de utilizar.
Seguridad: Previene el acceso a los datos subyacentes y en su
lugar solo permite la interaccin a travs de los
procedimientos.
Centralizacin: Coloca el cdigo funcional en SQL Server, donde
es ms fcil de actualizar que cuando el cdigo est en una
aplicacin distribuida.
Desempeo: SQL Server puede acumular (cache) el plan de
ejecucin para un procedimiento, permitindole correr el
mismo procedimiento en el futuro con menor latencia.


Por qu usar los procedimientos
almacenados?
Desempeo: Permite imponer mejores prcticas al deshabilitar
las consultas directas, y en su lugar forzar el uso de
procedimientos almacenados que hemos creado.


Por qu usar los procedimientos
almacenados?
SQL Server Management Studio proporciona un GUI
para crear los procedimientos almacenados, no es tan
elegante ni til como la creacin de las tablas o vistas.
T, bsicamente, solo escribirs cdigo.
Crear procedimientos en el GUI
Es el preferido de aquellos administradores con poca
experiencia tambin.

Crear procedimientos con el DDL
Son ejecutados simplemente con el comando EXEC
EXEC my_procedimiento

Si un procedimiento solo regresa resultados y no requiere
parmetros de entrada, tambin lo puedes tratar como una
tabla
SELECT * From my_procedimiento


Ejecutar procedimientos
almacenados
La entrada de datos es almacenada en una variable X
X= X = X AND Nombre IN (DELETE FROM Usuarios)

Esta es la consulta que utiliza la variable X
SELECT * From Usuarios
WHERE X

SELECT * From Usuarios
WHERE X = X AND Nombre IN (DELETE FROM Usuarios)

SQL Injection
Cuando creamos una consulta dinmicamente basndonos en datos
de entrada del usuario, abrimos la puerta a algo llamado SQL
Injection.
El atacante proporciona esencialmente datos de entrada que
modifican la consulta SQL de manera que proporcione informacin
que normalmente no se debera, modificar o inclusive eliminar datos.
Los procedimientos almacenados pueden ayudar a evitar la SQL
Injection, porque la entrada de datos del usuario (va parmetros del
procedimiento almacenado) son automticamente aislados, y no
tratados como parte de la consulta misma.
Ejemplo de SQL Injection
Usar procedimientos almacenados
Escapar y analizar de manera apropiada la entrada de datos del
usuario para las formas de ataque conocidas.
Nunca confiar en la entrada de datos del usuario!
Vulvete paranoico ;).
Evitar SQL Injection
El propsito de los procedimientos almacenados.
Crear procedimientos almacenados en el GUI.
Crear procedimientos almacenados usando el DDL
(Lenguaje de Definicin de Datos)
Ejecutar un procedimiento almacenado
Entender SQL Injection.
Resumen

You might also like