Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Л-7 - Защита данных в СУБД

.pdf
Скачиваний:
17
Добавлен:
28.06.2021
Размер:
425.61 Кб
Скачать

Обеспечение целостности данных (1)

Обеспечение целостности данных заключается в защите от внесения непреднамеренных ошибок. Достигается путем проверки ограничений целостности.

Различные типы ограничений целостности в языке SQL:

Уникальность значения первичного ключа (PRIMARY KEY).

Уникальность ключевого поля или комбинации значений ключевых полей: UNIQUE(A), где А – один или несколько атрибутов, указанных через запятую.

(Это – явные структурные ограничения целостности)

Обеспечение целостности данных (2)

Обязательность / необязательность значения

(NOT NULL / NULL).

Задание диапазона значений атрибута:

CHECK (field BETWEEN min_value AND max_value)

Задание взаимоотношений между значениями атрибутов:

CHECK (field1 @ field2), где @ – оператор отношения

(например, знак >).

Задание списка возможных значений (констант) для атрибута:

CHECK (field IN (value1, value2, ... , valueN))

Обеспечение целостности данных (3)

Определение формата атрибута (даты, числа и пр.):

CHECK (field LIKE '___-__-__') – формат телефонного номера.

Определение домена атрибута на основе значений другого атрибута этого или другого отношения (внешний ключ, FOREIGN KEY).

(Пункты 3-8явные ограничения целостности на значения данных)

Ограничения на обновление данных (каждое следующее значение атрибута должно быть больше предыдущего). Требует использования триггеров.

Обеспечение целостности данных (4)

Ограничения на параллельное выполнение операций (транзакции) и проверка ограничений целостности после окончания внесения взаимосвязанных изменений.

Реализация ограничений целостности возлагается на СУБД или выполняется с помощью специальных программных модулей.

СУБД проводит проверку выполнения ограничений целостности для команд DDL до выполнения команды, а для команд DML либо сразу после выполнения команды, либо после выполнения всей транзакции.

Обеспечение целостности данных (5)

Вопросы целостности данных также играют роль в защите данных.

Даже получив доступ к БД, пользователь должен следо-

вать реляционным правилам манипуляций с данны-

ми. Он не сможет удалить запись родительской таблицы без понимания системы отношений между таблицами (если не предусмотрено каскадное удаление).

Пользователь не сможет продублировать запись таблицы с ограничением UNIQUE, нарушить ограничения проверки CHECK и т.д.

Использование ограничений для обеспечения безопасности (1)

Ограничения используют для поддержания целостности (данных, ссылочной или доменной).

Ограничения целостности домена (такие как CHECK) проверяют данные на корректность формата и содержимого. Любая попытка ввести некорректные данные в поле приведет к ошибке. Проверка данных перед их помещением в таблицу – эффективное средство защиты.

Другой механизм поддержания доменной целостности – значения по умолчанию. Он гарантирует отсутствие неопределенных значений NULL, даже если данные не вводятся явно.

Использование ограничений для обеспечения безопасности (2)

Спорный вопрос – чем являются значения по умолчанию: брешью в системе защиты или эффективным механизмом системы безопасности.

С одной стороны, они обеспечивают целостность данных, что совсем неплохо.

Однако с другой стороны, они в некоторой мере снимают ответственность с пользователя за ввод точных данных и облегчают работу вредителям при внесении в БД посторонней информации.

Использование ограничений для обеспечения безопасности (3)

Целостность по существованию поддерживается индек-

сами и ограничениями (UNIQUE или PRIMARY KEY). Они исключают возможность ввода пользователем дублирующих значений.

Ссылочная целостность поддерживается с помощью отношений между таблицами. Гарантируется, что в дочерней таблице будут отсутствовать строки, у которых нет соответствующих строк в родительской таблице.

Ограничения покрывают небольшой сегмент области обеспечения безопасности БД. Их рассматривают как дополнение к более надежным механизмам СУБД.

Использование представлений

всистеме безопасности (1)

Представления – один из механизмов управления системой безопасности. Используются для ограничения доступа пользователя к данным и операциям.

Если представление отбирает только часть полей таблицы, то ограничение называют вертикальным (ограничен доступ к подмножеству столбцов). Остальные поля могут содержать конфиденциальную информацию.

Если для такого представления назначить привилегию SELECT некоторой роли, все ее члены смогут просматривать доступную информацию.

Использование представлений

всистеме безопасности (2)

Можно ограничить доступ по горизонтали, определяя подмножество строк. Например, открыть доступ к историческим данным, введенным год или два назад, и запретить доступ к информации, введенной после заданной даты.

Можно разбить торговых представителей на группы, согласно их уровню ответственности. Одна группа получит доступ к заказам, общая сумма которых свыше 50 тыс. рублей, вторая – к более мелким заказам.

В одном представлении можно объединить ограничения по вертикали и по горизонтали.