Тема 5: Защита информации в системах управления базами данных (СУБД).

1. Принципы построения реляционных баз данных.

2. Организация доступа к информации в СУБД.

3. FOXPRO,

4. Access

5. MSSQL.

Модели данных.

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

Реляционная модель является простейшей и наиболее привычной формой представления данных в виде таблицы. В теории множеств таблице соответствует термин отношение (Relation), который и дал название модели. Достоинством реляционной модели является сравнительная простота инструментальных средств её поддержки, недостатком — жесткость структуры данных (невозможность создания строк таблицы произвольной длинны) и зависимость скорости её работы от размера базы.

Иерархическая и сетевая модели предполагают наличие связей между данными, имеющими какой-либо общий признак. В иерархической модели такие связи могут быть отражены в виде дерева-графа, где возможны только односторонние связи от старших вершин к младшим. Это облегчает доступ к необходимой информации, но только если все возможные запросы отражены в структуре дерева. Никакие иные запросы не могут быть удовлетворены.

Указанный недостаток снят в сетевой модели, где, по крайней мере теоретически, возможны связи «всех со всеми». Использование иерархической и сетевой моделей ускоряет доступ к данным. Но поскольку каждый элемент должен содержать ссылки на некоторые другие элементы, требуются значительные ресурсы дисковой подсистемы и памяти.

В наиболее полном варианте система управления базами данных должна иметь следующие компоненты:

1. Среда пользователя (разработчика), дающая возможность непосредственно управления данными.

2. Алгоритмический язык для программирования прикладных систем обработки данных.

3. Хранилищ данных организованное специальным образом.

 

Начнем рассмотрение с последнего, с точки зрения операционной системы хранилище это файл или группа файлов имеющих специальную структуру. Наиболее известны так называемые DBASE-подобные СУБД. Эти системы хранят информацию в виде отдельных таблиц, помещаемых отдельный в файл специальной структуры. Файл содержит так называемый заголовок в который включается информация о количестве записей в данной таблице и информация о столбцах таблицы. Особенностью указанных СУБД является: отсутствие возможности как либо ограничить доступ к хранящимся в таблицах данным при помощи средств самой СУБД. Рассмотрим СУБД FOXPRO компании Microsoft. Например некоторое приложение использует для работы таблицу т1 и в рамках этого приложения доступ пользователя к столбцам с1 и с3 разрешен, а доступ к столбцу с2 запрещен, хотя последний присутствует в структуре таблицы. Однако если пользователь воспользуется другим приложением или непосредственно средой разработчика, то он может получить доступ к информации хранящейся в столбце с2. Следует заметить, что для нормальной работы приложений в среде FOXPRO необходимо наличие среды разработчика на каждой рабочей станции. Хотя файлы с данными могут быть общими. Причем все вопросы связанные с конфликтами одновременного доступа к данным обрабатываются самим приложением. Среда разработчика представляет из себя интерпретатор команд набираемых пользователем непосредственно или загружаемых из текстового файла. Не представляется возможным защитить данные от модификации пользователем работающим в такой среде. Однако остается возможности защищать данные средствами ОС выдавая права на отдельные файлы. Однако разграничить доступ к отдельным столбцам средствами ОС невозможно. Следующая реализации СУБД от Microsoft — ACCESS. Данная СУБД в качестве хранилища использует файл сложной структуры в который помещаются как сами данные (таблицы) так и средства их обработки например модули программ или выходные формы и многое другое. Такое хранилище может быть защищено паролем, причем рамках одной базы данных можно ввести несколько пользователей или групп с различными правами. Возможны варианты когда пользователь может только читать из таблицы или вносить соответствующие изменения. Вся обработка информации отбор и сортировка происходят на клиенте, т.е. файл с базой данных только хранит информацию. Следующий шаг в развитии СУБД это создание клиент-серверной платформы на базе SQL серверов. Так компания Microsoft разработала свой вариант SQL серверов работающих на базе ОС Windows 2000 или 2003 соответственно. Принципиальное отличие работы SQL сервера в том, что сервер принимает запросы в формате структурированного языка запросов (дословный перевод аббревиатуры SQL). Существует большое количество диалектов этого языка однако строго определенный минимальный набор поддерживается всеми диалектами. Сервер принимает и обрабатывает такой запрос, причем пользователю отправляются только результаты запроса, что в свою очередь сокращает сетевой трафик и позволяет снизить требования к производительности клиентских компьютеров. Второе отличие сервера SQL от других СУБД это встроенные возможности по поддержанию целостности базы данных. Так SQL серверами используется механизм транзакций, т.е. поступающая информация не сразу записывается непосредственно в базу данных, а сначала в специальный фал называемый журналом транзакций. Только после получения всей информации для данной транзакции информация будет записана непосредственно в базу данных. В других (ранее описанных СУБД) вся ответственность за целостность данных ложилась на разработчика приложения. В лучшем случае при работе с SQL сервером появляются три лица с разными обязанностями:

· Администратор сервера — отвечает за работоспособность сервера в целом и создает логины для пользователей

· Администратор базы данных — создает структуру базы таким образом что бы максимально снизить риск искажения информации от неправильных действий пользователя.

· Разработчик приложения

 

В SQL сервере пользователь имеет полноценную регистрацию причем возможна регистрация пользователя непосредственно в SQL сервере так и с помощью регистрации в домене Windows 2000 или 2003. Для каждой базы хранимой на данном SQL сервере может использоваться один и тот же логин пользователя, причем он может иметь различные права для различных баз. В SQL сервере в каждой базе логин пользователя сервера привязывается к пользователю базы, которому и выдаются права в данной конкретной базе данных. Существует возможность создания групп пользователей в рамках каждой базы и вводится новое понятие такое как роль в бае данных. Ролям приписываются определенные права на объекты базы данных. SQL сервер позволяет разграничивать доступ вплоть до отдельных столбцов таблицы.