У будь-якій системі реального масштабу (тобто не особистого проекту) ці типи користувачів залежать від середовища, тому це не так просто.
У всіх середовищах програма повинна мати те, що їй потрібно, і не більше (як правило, це "вибрати / вставити / оновити на всіх таблицях" та "виконати всі процедури". Для великих систем, де у вас можуть бути окремі користувачі додатків для різних завдань (для наприклад, одна програма несе відповідальність за подачу даних про цензуру, а інша - за генерування звітів. Ви повинні розділити їхні привілеї, щоб вони мали найменше, що їм потрібно (користувачеві-звітнику, мабуть, не потрібно і права запису). середовища, якщо у вас є: Я бачив, як код підпадає під час просування до Live, який працював у тесті, оскільки все в тестовому середовищі отримувало доступ до БД як sa(еквівалент MSSQL root).В ідеалі користувач програми, як правило, не повинен мати привілеїв, які дозволяють йому змінювати вашу схему (CREATE,, DROP...) - з цього є винятки, але їх небагато і між ними.
rootє, ну root,. У виробництві це лише ваша DBA, і її слід використовувати рідко - лише для обслуговування системи (оновлення дизайну БД тощо) та моніторингу. Для великої системи, особливо в регламентованих умовах, де ви повинні підтримувати ретельний контроль над особами з метою підзвітності, ви можете взагалі не дозволити одному rootкористувачеві і спробувати розділити привілеї на менші рулони (я не впевнений, наскільки далеко ви можете піти з цим у mysql, але ви можете бути досить дрібними в MSSQL, Oracle тощо.
Для користувачів розробників: вони взагалі не повинні мати доступу до вашої живої обстановки. Це одна з причин, чому користувачі програм не повинні мати схеми, що впливає на права: хтось із доступом до облікового запису розробника може потенційно обійти їх блокування. У тестових середовищах вони зазвичай не мають доступу: вони надсилають патчі до QA і DBA (можливо, користуючись rootкористувачем) для QA застосовують оновлення до тестового середовища (насправді це часто автоматизовано у великих організаціях, тому QA DBA насправді є набором скриптів, який контролює відновлення тестового середовища для кожного циклу). У середовищі розробки, особливо якщо у розробників є свої локальні копії запущеної служби, ці користувачі, звичайно, повинні мати повний доступ до всього, щоб мати можливість експериментувати.
Наведене вище - це загальні зауваження: щоб зробити будь-які конкретні рекомендації, нам слід знати набагато більше про ваші додатки та умови, в яких вони працюють. Цільове середовище іноді важливіше, ніж ви можете подумати: залежно від вашого бізнес-середовища. права ваших користувачів навіть можуть бути продиктовані досить безпосередньо законодавчим регулюванням, навіть якщо ваші клієнти коли-небудь надають вам доступ до реальних даних для діагностичних цілей.