Como se mencionó anteriormente, la seguridad de la base de datos es complicada. El DB en sí tiene mecanismos de seguridad inherentes limitados (básicamente, autenticación y roles / autorización). Las bases de datos deben estar protegidas, generalmente en los niveles de red y autenticación, y, aun así, es un nivel tenue de protección.
La necesidad de que las bases de datos puedan distribuir datos a pedido, almacenar todos esos datos y dividirlos en compartimentos y clasificarlos es un gran desafío (aunque en teoría es simple). Bloquear datos de componentes es un gran desafío.
Las variantes SQL son estándar y pueden bloquearse dentro de lo razonable, pero son conocidas por los vectores de ataque vulnerables (en gran parte porque presentan una gran superficie de ataque: el perro más grande en el juego siempre es el objetivo más grande). Las soluciones basadas en la nube agregan otra capa de complejidad (y mitigación de riesgos de seguridad, al menos en el extremo legal del juego).
- ¿Por qué el software es complejo de construir?
- ¿Cuánto debo cobrar por mi idea?
- ¿Por qué es tan importante la revisión de código en la industria del software?
- ¿Por qué se descuidan las pruebas de rendimiento del software?
- ¿Cuáles son algunos trucos de depuración para corregir errores en soluciones empresariales con miles de líneas / archivos de código que no escribió?
Asegurar adecuadamente una base de datos requiere un firewall inteligente (en serio, proteja sus puertos; use IDS / IPS si es práctico), validación de entrada (no permita consultas con sintaxis original) y, por amor a todo lo sagrado, solo permita el ingreso de fuentes confiables ( un proxy / proxy inverso es una buena idea).