El primer paso es siempre crear una base de datos, a menos que se quiera utilizar una de un tercero. Cuando se crea una base de datos, esta es asignada a un propietario, aquel que ejecutó la sentencia de creación. Usualmente, sólo el propietario (o un superusuario) puede hacer cualquier cosa con los objetos de esa base de datos. Para que otros usuarios puedan utilizarla, se les deben conceder privilegios.
Las aplicaciones nunca deberían conectarse a la base de datos como su propietario o como un superusuario, porque estos usuarios pueden ejecutar cualquier consulta a su antojo; por ejemplo, modificar el esquema (p.ej., eliminar tablas) o borrar su contenido por completo.
Se pueden crear distintos usuarios de una base de datos para cada aspecto de la aplicación con permisos muy limitados a los objetos de dicha base de datos. Solamente deberían otorgarse los privilegios necesarios, evitando así que el mismo usuario pueda interactuar con la base de datos en diferentes casos y uso. Esto significa que si un intruso obtiene acceso a una base de datos utilizando las credenciales de la aplicación, solamente puede efectuar los cambios que la aplicación permita.
Se recomienda no implementar toda la lógica de negocio en la aplicación web (esto es, en los scripts); se ha de hacer en su lugar en el esquema de la base de datos utilizando vistas, disparadores o reglas. Si el sistema evoluciona, se tendrá por objeto abrir nuevos puertos a la base de datos, teniendo así que reimplementar la lógica en cada cliente de la base de datos por separado. Además, los disparadores se pueden utilizar para manejar campos de forma transparente y automática, lo que a menudo ayuda en la depuración de problemas con la aplicación o en el seguimiento de transacciones.