Encuentro que la lista de privilegios proporcionados por MySQL es un poco abrumadora. No estoy seguro de quién debería tener qué privilegios. En mi opinión, hay tres usuarios típicos para mi situación:
root
developer
application
root
Se explica por sí mismo. Para developer
este usuario necesita poder acceder fácilmente a cualquier base de datos, hacer ajustes a ella, etc. Para empezar, estoy configurando a este usuario con este conjunto de privilegios:
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON
application
tiene un conjunto aún más limitado. Debería limitarse a manipular una base de datos específica.
No estoy seguro de qué conjunto de privilegios razonable es otorgar. ¿Cuáles son un conjunto razonable de privilegios para otorgar un desarrollador y una aplicación y por qué?