Mam aplikację, która zostanie wdrożona na komputerach produkcyjnych z programem SQL Server. Chcę móc przechowywać i pobrać wersję schematu w mojej bazie danych. Jestem zainteresowany najlepszych praktyk, aby móc osiągnąć ten cel, o następujących głównych celów:Najlepsze metody przechowywania wersji schematu bazy danych w programie SQL Server?
- w stanie przechowywać i łatwo pobrać numer wersji bazy danych.
- Ukryte lub trudniejsze do znalezienia i manipulowania przez klientów.
- Może być edytowany/zmieniany po utworzeniu nowej wersji.
- Tworzenie kopii zapasowej DB lub blokowanie DB zachowuje wersję # dla analizy sądowej.
Chciałbym mieć sposób na zapisanie "wersji" w metadanych lub nie na zwykłej tabeli, do której można uzyskać dostęp/ustawić za pomocą składowanej procedury systemowej.
Wszelkie pomysły lub najlepsze praktyki?
EDYCJA: Jedną z opcji, którą znalazłem, która może być obiecująca, jest użycie rozszerzonych właściwości programu SQL Server, umieszczenie wartości klucza | przypisanej do bazy danych za pomocą "Schema_Version" i numeru wersji. Nie jest zaszyfrowany (ale wartość może być) i nie jest ukryty, ale przynajmniej został usunięty z rzeczywistej struktury DB, którą przeglądają niektórzy z naszych użytkowników i pracowników terenowych (ku mojej frustracji!))
Dlaczego cię to obchodzi, jeśli klienci mogą uzyskać dostęp do pola? Jeśli edytują go bezpośrednio, czy nie spowoduje to zepsucia aplikacji, a potem będzie to ich wina? – mellamokb
@mellamokb - wielkie objaśnienie, ale potrzebujemy tego specjalnie dlatego, że ludzie na stronie robią dokładnie to: mucking z bazą danych. Chcemy, aby tak było w przypadku śledztw kryminalistycznych, więc ukrycie go (na przykład w metadanych SQL) po prostu zmniejsza szanse na zmianę. – pearcewg
@pearcewg jeśli chcesz kryminalistyki, to wkraczasz w dziedzinę bezpieczeństwa, a wtedy brakuje ci sensu z Twoimi wymaganiami. Nie powinieneś próbować chronić bazy danych przed osobami, które ją posiadają - to się nazywa "nadopiekuńczym projektem". Jeśli uważasz, że jest naprawdę głęboki, przekonasz się, że nie ma absolutnie żadnego sposobu, aby dowiedzieć się, czy facet z hasłem SA bałaganił w bazie danych. O to chodzi. Sprawienie, że rozwiązanie będzie "trudniejsze do znalezienia i manipulowania", po prostu sprawi, że poczujesz się chroniony, gdy nie jesteś. –