Re: Buen dia

From: Martín Marqués <martin(dot)marques(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>, Jorge Alberto Aquino Andrade <jorge(dot)aquino(dot)andrade(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Buen dia
Date: 2013-03-20 20:41:52
Message-ID: CABeG9Lujygp1_7mO37kKc_kj_JoBYvmZNRAxxY5aWRAaM=85+w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 20 de marzo de 2013 17:06, Alvaro Herrera
<alvherre(at)2ndquadrant(dot)com> escribió:
> Martín Marqués escribió:
>> Totalmente de acuerdo con la velocidad y el hecho que al usar SP
>> esquivás inyecciones de SQL.
>
> Yo no estoy de acuerdo con ninguno de esos dos argumentos. Lo de la
> velocidad dependerá de los detalles de la implementación; y lo de la
> inyección de SQL, lo que consigues es que el formato de la inyección sea
> diferente, pero por medio de parámetros de usuario no verificados sigue
> siendo posible inyectar aún si usas un SP.

Obvio que respecto a la velocidad, hay que tener en cuenta otros
parámetros (cual el la latencia de red entre aplicación y servidor,
por ejemplo, y tantos otros), pero en general, tengo entendido que se
puede obtener algo mas de velocidad programando la lógica dentro de la
BD (si Joe Celko lee esto nos mata! :) )

Respecto a la inyección, bueno, hay que usar bibliotecas de BD que la
mayoría de los lenguajes ya traen para no tener problemas (PDO en PHP,
o psycopg en Python son dos ejemplos que me vienen a la cabeza ahora).

> Lo que sí consigues es un poco de abstracción. Con el SP, los detalles
> del formato de almacenamiento pueden cambiar (por ej. dividir una tabla
> "verticalmente") y no tendrás que cambiar la aplicación: sólo el SP
> tiene que conocer cómo hacer los respectivos INSERT.
>
> Si tienes un montón de lógica en SPs, la migración puede ser dolorosa,
> porque tendrás que reescribir los SPs; pero si no tienes la lógica en
> SPs, la migración será dolorosa porque tendrás que reescribir parte de
> la aplicación. En otras palabras, no te salvas de ese dolor, a menos
> que la aplicación haya sido diseñada cuidadosamente desde el principio.

En general es mas simple cambiar cosas en aplicaciones con lenguajes
ricos que en los lenguajes mas rudimentarios que se encuentran en los
motores (llamese Transact, PLpgSQL, PL/SQL, etc)

Pensaba en sistemas donde uno trata de mantener lo mas estándar
posible las queries, cosa que si un cliente viene con otro motor (a
veces el cliente ya tiene un motor donde tiene corriendo otras
aplicaciones) con poco esfuerzo se arregla.

Saludos...

--
Martín Marqués
select 'martin.marques' || '@' || 'gmail.com'
DBA, Programador, Administrador

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ivan Perales M. 2013-03-20 22:06:08 Re: [pgsql-es-ayuda] Transaccionaildad de una función postgresql en una excepción java
Previous Message Alvaro Herrera 2013-03-20 20:06:14 Re: Buen dia