Uso de procedementos almacenados

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introdución

Unha aplicación web pode lanzar consultas (SELECT/INSERT/UPDATE/DELETE) directamente contra a base de datos. O usuario que as lanza debe ter acceso a esas táboas, e pode ver a estrutura das mesmas.

Se queremos aumentar a seguridade podemos utilizar procedementos almacenados.

Ventaxas dos procedementos almacenados

Empregar procedementos almacenados implica:

  • Mellor rendemento xa que as sentenzas xa están compiladas e analizadas polo xestor.
  • Mellor seguridade xa que
  • é imposible facer ataques de inxección de código.
  • o usuario non pode ver a estrutura de táboas.
  • Mantemento máis doado, xa que podo cambiar a estrutura de táboas sempre que o procedemento continúe devolvendo o mesmo ao usuario.
IMPORTANTE. Se utilizamos este tipo de seguridade xa non necesitamos outorgar o usuario ningún tipo de permiso sobre as táboas.

O permiso que debemos outorgar para que poida executar un procedemento almacenado é EXECUTE.

Asignando permiso Execute

MySQL Workbench

Podemos facelo como no punto anterior facendo uso do WORKBENCH (neste caso daremos permiso de execución sobre todos os procedementos almacenados).

Usando a orde grant

Permiso de execución a todos os procedementos almacenados

Sería así:

1 grant execute on *.* to 'novo_usuario'

Permiso de execución a un procedemento almacenado

Sería así:

1 grant execute on procedure NOME_PROCEDEMENTO to 'novo_usuario'

Referencias