Що таке таблиця аудиту?


24

Що таке таблиці аудиту?

Чим вони корисні?

Я натрапив на них, читаючи цю статтю .


2
Вони просто звичайні столи. Це те, як ви їх використовуєте, і що ви вкладаєте в них, роблячи їх "таблицями аудиту".
Нік Чаммас

1
Вони не однакові. У вас є таблиця аудиту, яка є окремою від таблиці, яку ви ревізуєте. Отже, у вас буде дві таблиці NormalTableта AuditNormalTable.
Томас Стрінгер

1
Метт, Шарк отримав вашу відповідь на це. @Shark, я наголошував на тому, що таблиця аудиту - це не особлива конструкція бази даних (оскільки я склав враження, що ОП може це вірити). Це просто ще одна таблиця, яку розробник створює та використовує для відстеження певної інформації.
Нік Чаммас

@NickChammas О, я абсолютно зрозумів, що ти маєш на увазі. Але за коментарем ОП я не думав, що він це зробив.
Томас Стрінгер

Якщо ви вважаєте, що словник має значення аудиту, ви, мабуть, прийдете до висновку, що "таблиця аудиту" є помилковим. Аудит повинен бути зовнішнім до бази даних: якщо він кодується самим бізнесом прикладних програм, яким чином він може бути аудитом?
одного дня, коли

Відповіді:


22

Таблиці аудиту використовуються для відстеження транзакцій у певній таблиці чи таблицях. Вони дозволяють бачити постійний "журнал" (за відсутності кращого слова). Наприклад, скажіть, у вас є така таблиця:

create table SensitiveInformation
(
    SensitiveNumber int not null,
    SensitiveData varchar(100) not null
)
go

Можуть бути користувачі та / або програми, які мають доступ до вставки, оновлення та видалення із цієї таблиці. Але через чутливий характер цих даних вам може знадобитися швидкий і простий спосіб відстежити, хто робить що в цій таблиці.

Отже, у вас є таблиця аудиту для відстеження того, що робиться в цій таблиці. Зазвичай вони включатимуть основні хто , що , коли .

Таблиця аудиту може виглядати так:

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

Таблиці аудиту зазвичай заповнюються за допомогою використання тригерів бази даних. Іншими словами, коли Xдія відбувається SensitiveInformation, вставте в неї деталі SensitiveInformationAudit.


Чи є ActionПоле UPDATEабо INSERTабо DELETE?
leeand00

24

Ще одним важливим аспектом таблиць аудиту, який до цього часу не був висвітлений, є те, що крім того, щоб відстежувати, хто робив, для чого запису (часто включаючи до і після знімків) таблиці аудиту записуються один раз .

Записи в таблиці аудиту не можна оновлювати чи видаляти (див. Примітку), лише вставляти . Іноді це нав'язується за допомогою тригерів або, можливо, просто логіки програми, але це важливо на практиці, оскільки це дає вам "доказ" того, що нічого не підробляють таким чином, який важко виявити.

Примітка: Для очищення старих записів з таблиці аудиту необхідні спеціальні процеси, які часто повинні бути затверджені керівництвом або аудиторами.


4

Таблиці аудиту зазвичай використовуються, коли потрібно відстежувати зміни в конфіденційних / конфіденційних таблицях. Якщо є таблиця, яка використовується для ставки заробітної плати та відсотків преміювання, а програма HR регенерує зарплату на основі цих даних, то користувач, який має доступ до запису до цієї таблиці, може внести несанкціоновані зміни платежів.

У той же час деяким користувачам слід дозволити працювати над цими таблицями. Тут надходять таблиці аудиту. Таблиці аудиту можуть використовуватися для відстеження до і після значення змінених даних. Зазвичай вони також зберігають додаткову інформацію, як, наприклад, людина, яка здійснила зміну, і час, коли відбулася зміна.

Отже, ці таблиці аудиту стримують повноважень користувачів від несанкціонованої діяльності. Вони також забезпечують засіб повернення до правильних значень.

У SQL 2008 і вище є вбудована функція під назвою Change Data Capture, яка може бути використана для цього.


2
На жаль Змінити захоплення даних є жахливим для аудиту, оскільки ви не можете зафіксувати користувача, який вніс зміни (якщо ви вже не зберігаєте це в db).
HLGEM

0

Таблиці аудиту використовуються вбудованими або сторонніми інструментами аудиту, які фіксують зміни даних, що відбулися в базі даних, як правило, включаючи інформацію про те, хто вніс зміни, які об'єкти вплинули на неї під час її внесення, а також інформацію про Логін, програма та хост SQL, які використовуються для внесення змін. Вся захоплена інформація зберігається в таблицях аудиту і повинна бути доступною у зручних для користувача форматах шляхом експорту або запиту.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.