Я повністю погоджуюся з @Aaron щодо технічного аспекту цього.
Зважаючи на те, що завдання / відповідальність DBA за захист даних є завданням DBA, підхід за замовчуванням повинен робити саме це, наскільки DBA вважає за потрібне, і вимагати надійного ділового випадку для внесення змін. Гіпотетичний потенціал майбутнього - дещо можливе - дано - певні умови - що станеться мозковим штурмом - пізніше - і підтвердиться - добре після того, що, але - можливо, змінилося - пізніше - або - можливо, ніколи -причини, що трапляються фактично (тобто "чомусь") здаються виправданими виправданнями, особливо коли тема змінює стандарт / практику компанії.
Ніколи не довіряйте тому, хто хоче змінити те, що ніколи не повинно змінюватися ;-), (тим більше, якщо вони навіть не знають, чому цього хочуть).
Повідомте розробнику, що вони можуть додати таку логіку до коду програми, щоб запобігти цим оновленням. Але також і те, що ви не збираєтесь видаляти DENY
. Якщо / коли день коли-небудь настане (і цене можемабуть, не буде) якщо хтось отримує помилку, намагаючись оновити один із цих стовпців, тоді ви можете обговорити питання про те, видалити ви чи ні DENY
, що вимагатиме фактичного, ґрунтовного обґрунтування того, чому хтось буде оновлювати це значення в першість.
Справа в тому, що: має бути справжній бізнес-кейс, який визначає те, на що люди витрачають свій час. Час користується великим попитом, але його не вистачає, тому вам (і всім іншим) важливіші справи, ніж зміна системи на основі чиєїсь думки. Завжди буде різноманітна думка (пробіли проти вкладок, будь-хто?), І ви можете витратити роки, змінюючи це вперед і назад, якщо той розробник піде і замінить його тим, хто рішуче заперечує над тим, що ці поля оновлюються. Якщо жоден клієнт не просить цього (або чогось, що цього вимагає), і немає відчутної вигоди (навіть затримка вигоди, наприклад, очищення технічної заборгованості, що важко показати рентабельність інвестицій, але дуже варті того, враховуючи, що шанси цього витраченого часу, що не призводить до фактичної економії витрат в довгостроковій перспективі, малі до жодних), то або закрийте запит, або поставте його на відставання з низьким пріоритетом, навіть у випадках, коли ідеалізм говорить про те, що його слід змінити (це не один із таких випадків, але згаданий для тих, хто вважає, що це є). Ідеалізм чудово підходить для розмов, але компанії не можуть платити за оренду, комунальні послуги, службовців, податки тощо з ідеалами.
@ jpmc26 відповідає правильності потреби в спілкуванні, але не зовсім коректно стосовно того, що потрібно повідомляти. Так, ви повинні прислухатися до того, що просять інші, і намагатися зрозуміти їх міркування, що включає питання, якщо вам щось не зрозуміло.
ВІДПОВІДЬ, база даних не підпорядковується програмі, а професіонали бази даних (адміністратори, інженери, незалежно від того, яку назву використовує ваша компанія) не підпорядковують розробників (як це мається на увазі у цій відповіді). Ви не працюєте для розробників, ви працюєте для компанії, як і вони. Це зусилля команди, і ви не повинні просити прощення за свою роботу. Однак, типи комп'ютерної техніки (як правило) не відомі нашим навичкам спілкування між людьми, тож вам справді потрібно переконатися, що інші вас зрозуміли , які ваші міркування, які ваші обов'язки та як ця робота насправді працює .
Я вкладаю цю останню частину, тому що там є високий ступінь нерозуміння, дезінформації та браку знань (навіть деякі тут на цій самій сторінці). Наприклад, мабуть, існує таке поняття, що всі правила - це бізнес-правила. Нам потрібно пояснити, що існує різниця між правилами даних та правилами бізнесу (@Aaron назвав це у коментарі до питання "обмеження робочого процесу проти обмеження даних"), і хоча більшість даних, природно, належать додатку, деякі дані насправді належить до моделі даних. Якщо адміністратор бази даних диктат до розробників , як дані додатки будуть стримуватися? Звичайно, ні. Це наша робота , щоб підносити як дані додатки балончикабути обмеженим. Якщо порушення ділового правила, пов’язаного з даними програми, може заподіяти шкоду, а додаток не є стовідсотковим способом маніпулювання даними, можливо, можливо перевірка обмеження може дійсно допомогти (і їх не важко змінити або видалити ).
Але, виходячи з іншого напрямку, розробники не повинні диктувати, як обробляються дані даних (тобто метадані). Сюди входять поля аудиту (наприклад, created_on
/ created_by
стовпці) та стовпці PK / FK (ці значення повинні бути відомі лише внутрішньо і не надаватися клієнтам). Ці дані не є тим, що додаток зберігає у клієнтів (навіть якщо програма може бачити значення та навіть використовувати їх, наприклад, з ідентифікаторами), це те, що зберігає модель даних про дані програми.
Тому має сенс використовувати правила даних для захисту даних моделі даних. І це не означає, що ви збираєтеся почати додавати обмеження або обмеження в дані програми. Але НЕ, буде важко просунути розмову вперед по-справжньому продуктивним способом, якщо ця відмінність не буде зрозуміла.