Розробникам потрібен доступ для читання до всіх баз даних, включаючи prod. Іноді проблема полягає в тому, що дані про Prod - це не те, що вони очікували, і вони повинні бачити дані, що спричиняють проблему, оскільки вони не можуть відтворити їх на розробниках.
У розробників не повинно бути виробничих прав на запис даних або прав на створення об'єктів. Нічого не слід продавати, що не є частиною офіційного релізу. Занадто багато разів люди роблять швидке виправлення продукту, який або не працює, що призводить до того, що prod ще більше приглушиться або працює, але вони забувають ввести код на сервери dev / QA / Staging і ще гірше - у джерело контрольного сховища, і код буде перезаписаний приблизно через місяць у наступному офіційному випуску.
Я вважаю за краще, щоб розробники мали повні права QA бази даних, оскільки розгортання на інший сервер допомагає їм побачити, чи є якісь прогалини в процесі їх розгортання (ой, забув, що я змінив цю таблицю, щоб це зробити, і таке, і ой, я забув, що я це змінив з використанням графічного інтерфейсу, а не в скрипті в контролі джерела (саме таким чином повинні відбуватися будь-які структурні зміни бази даних).
Якщо у вас є новий клієнт типу Enterprise, який матиме власний набір серверів, дозволи можуть бути полегшені перед запуском. Це тому, що так багато має відбутися, і небагатьом людям, які зможуть це зробити на виробництві, стає відстало, а іноді навіть потрібно брати час. Зокрема, люди, які імпортують дані з іншої системи, можуть мати завдання поставити їх на додаток до запуску, якщо завантаження даних займе тривалий час. Ці люди, як правило, є фахівцями з даних, і існує більш високий рівень комфорту, що дозволяє їм тимчасовий доступ до програми, ніж середній розробник програми. Це не розкіш, яку ви маєте, коли переходите на вже створений сервер виробництва.
Однією з найважливіших речей щодо обмеження виробничих прав на базу даних є те, що розробникам потрібно забезпечити їх роботу у формі, яку може розгорнути хтось інший. Це, як правило, покращує якість роботи, оскільки вони не намагаються робити виправлення під час руху, оскільки вони щось забули або щось не вийшло, тому що вони робили це по-іншому, ніж продавець, ніж покладатися лише на пам'ять. Ви також втрачаєте ці "ой, я випадково видалив всю таблицю користувачів, тому що я забув виділити тип аварій", де клаус ", коли розгортання prod використовується лише за допомогою скриптів, які виконуються в цілому не однією командою за один раз, як це характерно для devs запускати речі на прод. Команда з обмеженими правами на продаж баз даних також скоріше зберігатиме зміни в базі даних у контролі джерел.