NormalTablei AuditNormalTable.
NormalTablei AuditNormalTable.
Odpowiedzi:
Tabele audytu służą do śledzenia transakcji dotyczących określonej tabeli lub tabel. Pozwalają zobaczyć ciągły „dziennik” (z powodu braku lepszego słowa). Powiedzmy, że masz taką tabelę:
create table SensitiveInformation
(
SensitiveNumber int not null,
SensitiveData varchar(100) not null
)
go
Mogą istnieć użytkownicy i / lub aplikacje, które mają dostęp do wstawiania, aktualizowania i usuwania z tej tabeli. Ale ze względu na wrażliwy charakter tych danych, możesz chcieć mieć szybki i łatwy sposób na śledzenie, kto robi to, co na tym stole.
Masz więc tabelę kontroli, aby śledzić, co się dzieje na tej tabeli. Zazwyczaj obejmuje to podstawowe Kto , Co , Kiedy .
Tabela audytu może wyglądać następująco:
create table SensitiveInformationAudit
(
SensitiveNumberNew int null,
SensitiveNumberOld int null,
SensitiveDataNew varchar(100) null,
SensitiveDataOld varchar(100) null,
Action varchar(50) not null,
AuditDate datetime not null,
LastUpdatedUser varchar(100) not null
)
go
Tabele audytu są zwykle wypełniane przy użyciu wyzwalaczy bazy danych. Innymi słowy, kiedy Xakcja się dzieje SensitiveInformation, wstaw jej szczegóły SensitiveInformationAudit.
Actionpole to UPDATEczy INSERTczy DELETE?
Innym ważnym aspektem tabel audytu, który nie był do tej pory podświetlany, jest to, że oprócz śledzenia tego, kto zrobił to, do którego rekordu (często włączając przed i po migawkach) tabele kontroli są zapisywane jednokrotnie .
Rekordy w tabeli kontroli nie mogą być aktualizowane ani usuwane (patrz uwaga), a jedynie wstawiane . Czasami narzuca się to za pomocą wyzwalaczy, a może po prostu logiki aplikacji, ale jest to ważne w praktyce, ponieważ daje „dowód”, że nic nie zostało zmienione w sposób trudny do wykrycia.
Uwaga: Czyszczenie starych rekordów z tabeli audytu wymaga specjalnych procesów, które często muszą zostać zatwierdzone przez kierownictwo lub audytorów.
Tabele audytu są zwykle używane, gdy chcesz śledzić zmiany w tabelach wrażliwych / poufnych. Jeśli istnieje tabela używana dla stawki wynagrodzenia i procentu premii, a aplikacja HR wynagradza wynagrodzenia na podstawie tych danych, wówczas użytkownik z dostępem do zapisu w tej tabeli może dokonywać nieautoryzowanych modyfikacji płatności.
Jednocześnie niektórzy użytkownicy powinni mieć możliwość pracy nad tymi tabelami. W tym miejscu pojawiają się tabele kontroli. Tabele kontroli można wykorzystać do śledzenia wartości przed i po zmianach danych. Zazwyczaj zapisują także dodatkowe informacje, takie jak osoba, która dokonała zmiany i czas, w którym dokonano zmiany.
Dlatego te tabele kontroli zniechęcają uprawnionych użytkowników do wykonywania nieautoryzowanych działań. Zapewniają również możliwość powrotu do prawidłowych wartości.
SQL 2008 i nowsze wersje mają wbudowaną funkcję o nazwie Zmiana przechwytywania danych, której można w tym celu użyć.
Tabele inspekcji są używane przez rodzime lub zewnętrzne narzędzia inspekcji, które rejestrują zmiany danych, które nastąpiły w bazie danych, zwykle zawierające informacje o tym, kto dokonał zmiany, które obiekty zostały dotknięte zmianą, kiedy została dokonana, a także informacje o Login SQL, aplikacja i host użyte do wprowadzenia zmiany. Wszystkie przechwycone informacje są przechowywane w tabelach kontroli i powinny być dostępne w formatach przyjaznych dla użytkownika poprzez eksport lub zapytania.