Sie sind auf Seite 1von 5

NATHALIE GMEZ CASTILLO 98071250997

GUIA N 15

1.1 Actividades de contextualizacin e identificacin de conocimientos


necesarios para el aprendizaje
1.2 Un procedimiento almacenado (stored procedure en ingls) es
un programa (o procedimiento) almacenado fsicamente en una base
de datos Su implementacin vara de un gestor de bases de datos a
otro

1.3 Su objetivo es Contener instrucciones de programacin que


realicen operaciones en la base de datos. Entre otras, pueden
contener llamadas a otros procedimientos.
I. Ventajas de procedimientos almacenados:

Trfico de red reducido entre el cliente y el servidor


Los comandos de un procedimiento se ejecutan en un nico
lote de cdigo. Esto puede reducir significativamente el trfico
de red entre el servidor y el cliente porque nicamente se enva
a travs de la red la llamada que va a ejecutar el
procedimiento. Sin la encapsulacin de cdigo que proporciona
un procedimiento, cada una de las lneas de cdigo tendra
que enviarse a travs de la red.

Mayor seguridad
Varios usuarios y programas cliente pueden realizar
operaciones en los objetos de base de datos subyacentes a
travs de un procedimiento, aunque los usuarios y los
programas no tengan permisos directos sobre esos objetos
subyacentes. El procedimiento controla qu procesos y
actividades se llevan a cabo y protege los objetos de base de
datos subyacentes. Esto elimina la necesidad de conceder
permisos en cada nivel de objetos y simplifica los niveles de
seguridad.

La clusula EXECUTE AS puede especificarse en la


instruccin CREATE PROCEDURE para habilitar la
suplantacin de otro usuario o para permitir que los usuarios
o las aplicaciones puedan realizar ciertas actividades en la
base de datos sin necesidad de contar con permisos directos
sobre los objetos y comandos subyacentes. Por ejemplo,
algunas acciones como TRUNCATE TABLE no tienen permisos
que se puedan conceder. Para poder ejecutar TRUNCATE
TABLE, el usuario debe tener permisos ALTER en la tabla
especificada. Puede que la concesin de permisos ALTER a un
usuario en una tabla no sea lo ideal, pues en realidad el
usuario tendr permisos muy superiores a la posibilidad de
truncar una tabla. Si se incorpora la instruccin TRUNCATE
TABLE en un mdulo y se especifica la ejecucin del mdulo
como un usuario con permisos para modificar la tabla, se
pueden ampliar los permisos para truncar la tabla al usuario
al que se concedan permisos EXECUTE para el mdulo.

Al llamar a un procedimiento a travs de la red, solo est


visible la llamada que va a ejecutar el procedimiento. Por lo
tanto, los usuarios malintencionados no pueden ver los
nombres de los objetos de base de datos y tabla, incrustados
en sus propias instrucciones Transact-SQL, ni buscar datos
crticos.
El uso de parmetros de procedimientos ayuda a protegerse
contra ataques por inyeccin de cdigo SQL. Dado que la
entrada de parmetros se trata como un valor literal y no como
cdigo ejecutable, resulta ms difcil para un atacante insertar
un comando en la instruccin Transact-SQL del procedimiento
y comprometer la seguridad.
Los procedimientos pueden cifrarse, lo que ayuda a ofuscar el
cdigo fuente. Para obtener ms informacin, vea Cifrado de
SQL Server.

Reutilizacin del cdigo


El cdigo de cualquier operacin de base de datos redundante
resulta un candidato perfecto para la encapsulacin de
procedimientos. De este modo, se elimina la necesidad de
escribir de nuevo el mismo cdigo, se reducen las
inconsistencias de cdigo y se permite que cualquier usuario o
aplicacin que cuente con los permisos necesarios pueda
acceder al cdigo y ejecutarlo.

Mantenimiento ms sencillo
Cuando las aplicaciones cliente llaman a procedimientos y
mantienen las operaciones de base de datos en la capa de
datos, solo deben actualizarse los cambios de los procesos en
la base de datos subyacente. El nivel de aplicacin permanece
independiente y no tiene que tener conocimiento sobre los
cambios realizados en los diseos, las relaciones o los procesos
de la base de datos.
Rendimiento mejorado

De forma predeterminada, un procedimiento se compila la


primera vez que se ejecuta y crea un plan de ejecucin que
vuelve a usarse en posteriores ejecuciones. Como el
procesador de consultas no tiene que crear un nuevo plan,
normalmente necesita menos tiempo para procesar el
procedimiento.
Si ha habido cambios importantes en las tablas o datos a los
que se hace referencia en el procedimiento, el plan pre
compilado podra hacer que el procedimiento se ejecutara con
mayor lentitud. En este caso, volver a crear el procedimiento y
forzar un nuevo plan de ejecucin puede mejorar el
rendimiento.

II. Inyeccin de SQL server

La inyeccin de cdigo SQL es un ataque en el cual se inserta


cdigo malicioso en las cadenas que posteriormente se pasan a
una instancia de SQL Server para su anlisis y ejecucin.
Todos los procedimientos que generan instrucciones SQL
deben revisarse en busca de vulnerabilidades de inyeccin de
cdigo, ya que SQL Server ejecutar todas las consultas
recibidas que sean vlidas desde el punto de vista sintctico.
Un atacante cualificado y con determinacin puede manipular
incluso os datos con parmetros.

La forma principal de inyeccin de cdigo SQL consiste en la


insercin directa de cdigo en variables especificadas por el
usuario que se concatenan con comandos SQL y se ejecutan.
Existe un ataque menos directo que inyecta cdigo daino en
cadenas que estn destinadas a almacenarse en una tabla o
como metadatos. Cuando las cadenas almacenadas se
concatenan posteriormente en un comando SQL dinmico, se
ejecuta el cdigo daino.

El proceso de inyeccin consiste en finalizar prematuramente


una cadena de texto y anexar un nuevo comando. Como el
comando insertado puede contener cadenas adicionales que se
hayan anexado al mismo antes de su ejecucin, el atacante
pone fin a la cadena inyectada con una marca de comentario "-
-". El texto situado a continuacin se omite en tiempo de
ejecucin.

III. Tpico ataque de inyeccin SQL

TxtUsuario: ' OR 'A'='A


TxtPassword: ' OR 'A'='A
TxtPassword: ' OR 'A'='A'; DELETE nomb_tabla; SELECT * FROM
USUARIOS WHERE 'A'='A

IV. El propsito de usar procedimientos almacenados en consultas


a la base de datos desde una interfaz de usuario.
V. Sintaxis para declarar una variable en MS SQL server.

DECLARE
{
{ @local_variable [AS] data_type | [ = value ] }
| { @cursor_variable_name CURSOR }
} [,...n]
| { @table_variable_name [AS] <table_type_definition> }

<table_type_definition> ::=
TABLE ( { <column_definition> | <table_constraint> } [ ,... ] )

<column_definition> ::=
column_name { scalar_data_type | AS
computed_column_expression }
[ COLLATE collation_name ]
[ [ DEFAULT constant_expression ] | IDENTITY [ (seed
,increment ) ] ]
[ ROWGUIDCOL ]
[ <column_constraint> ]

<column_constraint> ::=
{ [ NULL | NOT NULL ]
| [ PRIMARY KEY | UNIQUE ]
| CHECK ( logical_expression )
| WITH ( <index_option > )
}

<table_constraint> ::=
{ { PRIMARY KEY | UNIQUE } ( column_name [ ,... ] )
| CHECK ( search_condition )
}

<index_option> ::=
See CREATE TABLE for index option syntax.

VI. Consulta parame rizada en una aplicacin (C# 2008).

Una consulta parametrizada devuelve datos que cumplen las


condiciones de una clusula WHERE dentro de la
consulta. Por ejemplo, puede parametrizar una lista de clientes
para mostrar solo los clientes de una determinada ciudad;
para ello, agrega WHERE City = @City al final de la instruccin
SQL que devuelve una lista de clientes.
Las consultas de TableAdapter parametrizadas se crean en
el Diseador de Dataset o durante la creacin de formularios
de enlace a datos en una aplicacin de Windows, con el
comando Parametrizar origen de datos en el men Datos. El
comando Parametrizar origen de datos tambin crea controles
en el formulario para especificar los valores de los parmetros
y ejecutar la consulta. Para obtener ms informacin,
vea Generador de criterios de bsqueda (cuadro de dilogo).

1. Abra el formulario en el Diseador de Windows Forms.


2. Haga clic en Agregar consulta en el men Datos o en Etiquetas inteligentes de
datos.
3. Seleccione la tabla a la que quiera agregar parametrizacin en el rea Seleccionar tabla
de origen de datos. Para obtener ms informacin, vea Generador de criterios de
bsqueda (cuadro de dilogo)
4. Escriba un nombre en el cuadro Nuevo nombre de consulta si va a crear una nueva
consulta.
-o-
Seleccione una consulta en el cuadro Nombre de consulta existente.
5. Escriba una consulta que usa parmetros en el cuadro Texto de la consulta.
6. Haga clic en Aceptar.
Se agregan al formulario un control para especificar los valores del parmetro y un
botn Cargar, en un control ToolStrip

Das könnte Ihnen auch gefallen