- •Базы данных
- •Введение
- •Часть 1. Проектирование баз данных
- •1.1. Некоторые понятия и определения
- •1. 2. Модели данных
- •1.2.1. Иерархическая модель данных
- •1.2.2. Сетевая модель данных
- •1.2.3. Реляционная модель данных Основные определения
- •Типы связей между отношениями
- •1.3. Классификация баз данных
- •1.4. Цели проектирования баз данных
- •1.5. Проектирование баз данных с использованием универсального отношения
- •1.5.1. Универсальное отношение
- •1.5.2. Проблемы, вызываемые использованием универсального отношения
- •Проблема вставки
- •Проблемы обновления
- •Проблемы удаления
- •1.5.3. Нормальная форма Бойса -Кодда
- •Функциональные зависимости
- •Возможный ключ и детерминант
- •Общий подход к декомпозиции
- •Анализ исходных аномалий
- •1.5.4. Возможные потери фз при декомпозиции
- •1.5.5. Избыточные функциональные зависимости
- •Приемы удаления избыточных фз
- •Минимальное покрытие
- •Модернизированный алгоритм проектирования бд
- •1.5. Метод er - проектирования
- •1.5.1. Сущности и связи
- •1.5.2. Степень связи
- •1.5.3. Переход от диаграмм er – типа к отношениям
- •Предварительные отношения для бинарных связей степени 1:1
- •Предварительные отношения для бинарных связей степени 1:n.
- •Предварительные отношения для бинарных связей степени n:m
- •1.5.4. Дополнительные конструкции, используемые в er - методе
- •Необходимость связей более высокого порядка
- •Предварительные отношения для трехсторонних связей
- •Использование ролей
- •1.5.5. Последовательность проектирования бд при использовании er- метода
- •1.5.5. Проверка отношений на завершающейся фазе проектирования
- •1.7. Другие нормальные формы
- •Часть 2. Специальные аспекты работы с базами данных
- •2.1. Защита данных в базе
- •2.2.1. Общие вопросы защиты данных
- •2.2.2. Реализация защиты данных в различных системах
- •Управление доступом в sql
- •Реализация системы защиты в ms sql Server
- •2.2. Обеспечение целостности данных
- •2.3. Организация параллельных процессов обработки данных
- •2.4. Восстановление бд
- •2.4.1. Уровни восстановления.
- •2.4.2. Восстановление и логический элемент работы
- •Требования к лэр
- •2.4.3. Промежуточное восстановление
- •2.4.4. Длительное восстановление
- •2.5. Математический аппарат, используемый при работе с реляционной базой данных
- •2.5.1. Теоретико-множественные операции реляционной алгебры
- •2.5.2. Специальные операции реляционной алгебры
- •Часть 3. Разработка приложений для работы с базами данных
- •3.1. Краткий обзор субд
- •3.2. Субд Access
- •3.2.1. Вводные замечания
- •3.2.2. Создание базы данных
- •3.2.3. Создание и работа с таблицами
- •3.2.4. Работа с запросами
- •3.2.5. Создание форм
- •3.2.5. Отчеты в Access
- •3.2.7. Макросы в Access
- •Преобразование макросов в программы на Visual Basic
- •3.2.8. Работа с внешними данными
- •3.3. Программирование в Access
- •3.3.1. Вводные замечания
- •3.3.2. Объявление переменных
- •3.3.3. Константы
- •3.3.4. Тип данных Variant
- •3.3.5. Пользовательские типы данных
- •3.3.5.Операторы, команды и выражения в vba
- •3.3.7. Процедуры vba
- •3.3.8. Управляющие структуры в vba
- •Работа с управляющими структурами
- •3.3.9. Объекты в Access
- •3.3.10. Классы в Access
- •3.3.11. Работа с ошибками в vba
- •3.4.Работа в ms sql –Server
- •3.4.1. Основные количественные показатели системы sql-сервер
- •3.4.2. Создание баз данных
- •3.4.3. Создание таблицы
- •3.4.4. Извлечение данных
- •3.4.5. Добавление данных
- •3.4.5. Изменение данных
- •3.4.7. Удаление данных
- •Цитированная литература
- •Оглавление
- •Часть 1. Проектирование баз данных 3
- •Часть 2. Специальные аспекты работы с базами данных 70
- •Часть 3. Разработка приложений для работы с базами данных 113
Часть 2. Специальные аспекты работы с базами данных
2.1. Защита данных в базе
2.2.1. Общие вопросы защиты данных
Термин “защита данных” означает, во-первых, предупреждение несанкционированного или случайного доступа к данным, их изменения или разрушений со стороны пользователей. И во-вторых, предупреждение изменения или разрушения данных при сбоях аппаратных и программных средств и ошибках в работе пользователей.
Защита данных обеспечивает их безопасность и секретность. Эти две функции тесно связаны между собой и для их реализации используются одни и те же технические методы защиты данных в БД. Но между этими функциями существует и принципиальное различие. Под функцией безопасности понимается защита данных от непреднамеренного доступа к данным и .возможности их искажения со стороны пользователей, а также при сбоях в аппаратуре или программных средствах. Поэтому обеспечение безопасности это внутренняя задача поскольку связана с его нормальным функционированием. Под функцией секретности понимается защита данных от преднамеренного доступа пользователей или посторонних лиц. Обеспечение секретности требует разделение всей хранимой в БД информации на доступные данные и данные, которые должны использоваться конфиденциально (т.е. либо сами содержат секретную информацию, либо ее можно получить из них с помощью специальной алгоритмической обработки). Решение этого вопроса выходит за рамки БД и находится в компетенции юридических органов или администрации предприятия, для которого создается Б Д.
Рассмотрим техническую сторону методов обеспечения защиты данных в базе.
Можно выделить уровни доступа к БД для различных категорий пользователей; 1) неограниченный доступ ко всем отношениям в БД и их объектам; 2) неограниченный доступ к группе отношений и их объектам; 3) ограниченный доступ к группе отношений и их объектам.
На уровне отношения различают следующие уровни доступа:
1) неограниченный доступ ко всему отношению для всех типов операций;
2) запрет на доступ к любым частям отношения для всех типов операций;
3) доступ к любой части отношения, но без права изменения его содержимого;
4) доступ к любой части отношения, но с правом изменения значений только для атрибутов A1, А2, . . Аn;
5) неограниченный доступ только к одному кортежу отношения для всех типов операций;
5) доступ только к одному кортежу отношений без права изменения содержимого этого кортежа;
7) неограниченный доступ только к атрибутам A1, А2, . . An отношения для всех типов операций и запрет доступа к остальным атрибутам отношения;
8) доступ только к атрибутам А1, А2, . . Аn отношения без права изменения их значений и запрет доступа к остальным атрибутам отношения;
9) доступ только к атрибутам A1,A2,…An отношения с правом изменения значений только для атрибутов A1..Ap, где (A1 . . Ap)(A1, А2, ... An) и запрет доступа к остальным атрибутам отношения;
10) доступ в соответствии с пунктами 1,3,4,5,5,7,8,9, но с ограничением по интервалу времени (с t1 no t2);
11) доступ в соответствии с пунктами 1,3,4,5,5,7,8,9, но с разрешением изменения значений атрибутов только в случае выполнения условий F1, F2, . . Fn соответственно для значений атрибутов A1,А2,..An (например, если значение атрибута не превышает некоторой величины Z);
12) разрешение права применения вычислительных операторов (суммирование, вычитание и т.п.) к атрибутам А1,А2,..Аn, без права доступа к этим атрибутам или изменения их значений.
Приведенный список уровней доступа показывает требуемый диапазон работы и необходимую гибкость системы зашиты данного общего назначения. В настоящее время нет реальных систем, в которых были бы реализованы все эти возможности для защиты данных.
Поскольку большинство СУБД работает под уравнением операционных систем ЭВМ, для защиты данных в БД широко применяются средства защиты, представляемые операционными системами.
Рассмотрим основные методы и приемы зашиты данных.
Идентификация пользователя. Перед началом сеанса с системой пользователи должны идентифицировать себя и подтвердить подлинность своей идентификации, т.е. что они именно те лица, за которых себя выдают. Для особо важной информации эти два шага могут многократно повторяться. Процесс идентификации пользователя выполняется с помощью либо системного идентификационного номера пользователя, либо номера терминала, запросившего сеанс работы. В последнем случае необходимо использовать организационные меры, обеспечивающие возможность работы с определенного терминала только определенных лиц. Процесс подтверждения подлинности представляет собой обмен между пользователем и системой информацией, известной только системе и пользователю. В простейшем случае процесс подтверждения подлинности может отсутствовать, и система защиты использует только процесс идентификации пользователя. Подтверждение подлинности реализуется специальной процедурой, обычно не сложной, но характеризующейся очень низкой вероятностью ее раскрытия. Это может быть одноразовые пароли, ответы на некоторые вопросы или реализация некоторых алгоритмов.
Управление доступом. В ряде случаев информация о составе разрешенных пользователю операций оказывается недостаточной для решения вопроса о допустимости выполнения этих операций с конкретными данными. Поэтому каждое групповое данное должно иметь связанный с ним набор ограничений доступа. Этот набор ограничений содержит: условие, которому должен удовлетворять пользователь, чтобы иметь доступы к групповому данному; пароль, предъявляемый при выборке некоторых комбинаций данных из группового данного; пароль, предъявляемый при модификации этих данных, и т.п.
В общем случае для решения вопроса о доступе пользователя к данным в составе СУБД должна быть специальная программа, проверяющая запрос пользователя на основании его паспорта, набора ограничений и конкретных значений данных в БД и решающая вопрос о разрешении или запрещении доступа. Алгоритм подобной программы базируется на аксиоме безопасности и реализует различные проверки.
Аксиома безопасности. Если комбинация атрибутов А доступна (запрещена) пользователю Х в зависимости от условия В, то каждая подкомбинация А также доступна (запрещена) пользователю Х по условию В.
Состав проварок может быть, например, следующим.
1. Все ли отношения, упомянутые в запросе, доступны пользователю Х ?
2. Все ли объекты, упомянутые в запросе, доступны пользователю Х ?
3. Все ли комбинации атрибутов, упомянутые в запросе, доступны пользователя X?
4. Задано ли квалифицирующее выражение, которое ограничивает для пользователя Х диапазон значений атрибутов, и если да, то лежат ли их значения внутри диапазона, доступного для X?
Если в результате проверок будет получен отрицательный ответ, то программа информирует пользователя об отклонении его запроса.
Защита данных при статической обработке. Кроме обычных проблем предотвращения несанкционированного доступа к БД для статических процедур существуют свои специфические проблемы защиты данных.
Первый подход защиты данных заключается в том, что если и не исключить полностью возможность раскрытия индивидуальных данных, то по крайней мере сделать эту возможность достаточно трудной.
Второй подход заключается в следующем. Если ключ записи состоит из Х полей и в запросе допускается специфицировать не более Y (Y<Х) полей ключа (т.е. выполняется поиск по частичному соответствию ключа), то никакая статическая функция, использующая только операции сложения, вычитания, умножения и деления, не позволит определить значение данного в конкретной записи.
Физическая защита. Подходы, рассмотренные выше, недостаточны для защиты БД от лиц, желающих ее использовать в обход системы. Примером обхода системы является физическое извлечение части БД; похищение флоппи дисков или винчестера, контроль передачи по линии связи между удаленным терминалом, за которым работает истинный пользователь, и системой и т.п.
Основная мера защиты при подобных ситуациях - использование специальных методов кодирования данных. Один из простейших методов – перекомпоновка символов в кортеже, записи, сообщении. Другой метод заключается в замене символа (или группы символов) другим (или группой символов) этого же либо другого алфавита и др. Физическая защита связана также с защитой данных от сбоев в аппаратных и программных средствах. В этом случае используется средства ОС - хранение поколений данных, формирование контрольных точек и выполнение при необходимости рестарта, ведение системных журналов и т.п.