Całkowicie zgadzam się z @Aaron w technicznym aspekcie tego.
Biorąc pod uwagę, że zadaniem / odpowiedzialnością DBA jest ochrona danych, domyślnym podejściem powinno być zrobienie tego, tak jak DBA uważa za stosowne, i wymaga solidnego uzasadnienia biznesowego do dokonania zmiany. Hipotetyczny-przyszły-potencjał-nieco-możliwy-pod warunkiem-pewnych-warunków-że-będzie-burza mózgów-później-i-potwierdzony-po-tym-ale-może-zmieniony-później-lub-może-nigdy -prawdopodobnie zdarzył się powód (tj. „z jakiegoś powodu”) wydaje się nieco lekceważący z uzasadnienia, szczególnie gdy temat zmienia standard / praktykę firmy.
Nigdy nie ufaj nikomu, kto chce wprowadzić zmiany w czymś, co nigdy nie powinno się zmienić ;-), (tym bardziej, jeśli nawet nie wie, dlaczego chce).
Poinformuj programistę, że może dodać taką logikę do kodu aplikacji, aby zapobiec tym aktualizacjom. Ale także, że nie zamierzasz usunąć DENY
. Jeśli / kiedy dzień kiedykolwiek nadejdzie (i tomoże nieprawdopodobnie nie), że ktoś napotka błąd podczas próby aktualizacji jednej z tych kolumn, wtedy możesz porozmawiać o tym, czy usuniesz tę DENY
, co będzie wymagało rzeczywistego, solidnego uzasadnienia, dlaczego ktoś aktualizuje tę wartość w pierwsze miejsce.
Chodzi o to, że ludzie powinni spędzać czas na prawdziwym uzasadnieniu biznesowym. Czas jest bardzo poszukiwany, ale brakuje go, więc ty (i wszyscy inni) masz ważniejsze rzeczy do zrobienia niż zmiana systemu w oparciu o czyjąś opinię. Zawsze będzie wiele opinii (spacje kontra tabulatory, ktoś?) I możesz spędzić lata zmieniając to w tę iz powrotem, jeśli ten programista odejdzie i zostanie zastąpiony przez osobę, która zdecydowanie sprzeciwia się możliwości aktualizowania tych pól. Jeśli żaden klient nie prosi o to (lub coś, co tego wymaga) i nie ma wymiernej korzyści (nawet opóźnionej korzyści, takiej jak spłacenie długu technicznego, co jest trudne do wykazania ROI, ale jest bardzo opłacalne, biorąc pod uwagę, że szanse na to, że spędzony czas nie przyniesie rzeczywistych oszczędności kosztów w dłuższej perspektywie, są niewielkie). następnie zamknij żądanie lub umieść je w zaległościach o niskim priorytecie, nawet w przypadkach, w których idealizm mówi, że należy je zmienić (nie jest to jeden z tych przypadków, ale wspomniany dla tych, którzy myślą, że tak jest). Idealizm doskonale nadaje się do rozmów, ale firmy nie mogą płacić czynszu, mediów, pracowników, podatków itp. Za pomocą ideałów.
@ jpmc26 ma rację co do potrzeby komunikacji, ale nie do końca poprawna w kwestii tego, co należy przekazać. Tak, powinieneś słuchać tego, o co proszą inni, i starać się zrozumieć ich rozumowanie, w tym zadawanie pytań, jeśli jesteś niejasny.
JEDNAK baza danych nie jest podporządkowana aplikacji, a specjaliści ds. Baz danych (administratorzy, inżynierowie, jakakolwiek nazwa Twojej firmy) nie są podporządkowani programistom (jak wydaje się to sugerować w tej odpowiedzi). Nie pracujesz dla programistów, pracujesz dla firmy, tak samo jak oni. To wysiłek zespołu i nie powinieneś błagać o wybaczenie za wykonywanie swojej pracy. To powiedziawszy, nasze typy komputerów nie są (ogólnie) znane z naszych umiejętności komunikacji międzyludzkiej, więc naprawdę musisz upewnić się, że inni cię rozumieją , jakie jest twoje rozumowanie, jakie są twoje obowiązki, ORAZ jak te rzeczy faktycznie działają .
Włożyłem tę ostatnią część, ponieważ istnieje wysoki stopień nieporozumień, dezinformacji i braku wiedzy (nawet niektóre tutaj na tej stronie). Na przykład wydaje się, że istnieje pogląd, że wszystkie reguły są regułami biznesowymi. Musimy wyjaśnić, że istnieje różnica między regułami danych a regułami biznesowymi (@Aaron nazwał to „ograniczeniem przepływu pracy a ograniczeniem danych” w komentarzu do pytania) i że chociaż większość danych naturalnie należy do aplikacji, niektóre dane faktycznie należy do modelu danych. Jeśli DBA dyktuje programistom ograniczenia danych aplikacji . Jeśli naruszenie reguły biznesowej związanej z danymi aplikacji może spowodować szkodę, a aplikacja nie jest w 100% jedynym sposobem będą być ograniczane? Oczywiście nie. Naszym zadaniem jest oferowanie w górę, jak dane aplikacji puszkę w celu manipulowania danymi, być może ograniczenie sprawdzania może naprawdę pomóc (i nie są trudne do zmiany lub usunięcia).
ALE, wychodząc z drugiej strony, programiści nie powinni dyktować sposobu przetwarzania danych modelu danych (tj. Metadanych). Obejmuje to pola kontroli (takie jak created_on
/created_by
kolumny) i kolumny PK / FK (te wartości powinny być znane tylko wewnętrznie, a nie podawane klientom). Te dane nie są tym, co aplikacja przechowuje o klientach (nawet jeśli aplikacja może zobaczyć wartości, a nawet ich użyć, na przykład z identyfikatorami), to jest to, co model danych przechowuje o danych aplikacji.
Dlatego sensowne jest stosowanie reguł danych do ochrony danych modelu danych. A to nie oznacza, że masz zamiar zacząć dodawać ograniczenia lub ograniczenia danych aplikacji. ALE trudno będzie poprowadzić rozmowę do przodu w naprawdę produktywny sposób, jeśli to rozróżnienie nie zostanie zrozumiane.