Seguridad de Bases de Datos
PHP Manual

Diseñando la base de datos

El primer paso es siempre crear una base de datos, a menos que quiera utilizar una de terceras personas. Cuando una base de datos es creada, ésta es asignada a un propietario, el que ha ejecutado la sentencia de creación. Usualmente, sólo el propietario (o un superusuario) puede hacer cualquier cosa con los objetos en esa base de datos, y para permitir a otros usuarios que puedan utilizarla, debe concederles privilegios.

Las aplicaciones nunca deberían conectarse a la base de datos como su propietario o como superusuario, porque estos usuarios pueden ejecutar cualquier consulta a su antojo, por ejemplo, modificar el esquema (Ej., eliminar tablas) o borrar su contenido entero.

Puede crear distintos usuarios de la base de datos para cada aspecto de su aplicación con permisos muy limitados a los objetos. La mayoría de privilegios que son requeridos deberían ser solamente otorgados, y así evitar que el mismo usuario pueda interactuar con la base de datos en diferentes casos y usos. Esto significa que si los intrusos ganan acceso a su base de datos utilizando las credenciales de la aplicación, solamente afecta a los cambios que su aplicación permita.

Usted está encarecido a no implementar toda la lógica del negocio en la aplicación web (Ej., sus scripts), en su lugar hágalo en el esquema de la base de datos utilizando vistas, disparadores o reglas. Si el sistema evoluciona, se pensará en abrir nuevos puertos a la base de datos, y usted tendrá que re-implementar la lógica en cada base de datos del cliente por separado. Al respecto de lo antes citado, los disparadores pueden ser utilizados para manerjar campos transparentes y automáticamente, lo cual a menudo provee un vistazo al interior cuando hay problemas de depuración con su programa o con el sistema de seguimientos de transacciones de su aplicación.


Seguridad de Bases de Datos
PHP Manual