Je trouve que la liste des privilèges fournis par MySQL est un peu écrasante. Je ne sais pas qui devrait avoir quels privilèges. Dans mon esprit, il y a trois utilisateurs typiques pour ma situation:
root
developer
application
root
est explicite. Pour developer
cet utilisateur, il doit pouvoir accéder facilement à n'importe quelle base de données, y apporter des ajustements, etc. Pour commencer, je configure cet utilisateur sur cet ensemble de privilèges:
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
a un ensemble encore plus limité. Il devrait simplement se limiter à manipuler une base de données spécifique.
Je ne sais pas ce qu'un ensemble raisonnable de privilèges doit accorder. Quels sont les privilèges raisonnables à accorder à un développeur et à une application et pourquoi?