Saya menemukan daftar hak istimewa yang disediakan oleh MySQL sedikit berlebihan. Saya tidak yakin siapa yang harus memiliki hak istimewa apa. Menurut saya ada tiga pengguna biasa untuk situasi saya:
root
developer
application
root
cukup jelas. Untuk developer
pengguna ini harus dapat dengan mudah mengakses database apa pun, membuat penyesuaian untuk itu, dll. Sebagai permulaan saya mengatur pengguna ini ke set hak istimewa ini:
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
memiliki set yang lebih terbatas. Seharusnya hanya terbatas pada memanipulasi database tertentu.
Saya tidak yakin apa yang diberikan serangkaian hak istimewa yang masuk akal. Apa hak istimewa yang wajar untuk memberikan pengembang dan aplikasi dan mengapa?