Главная страница
Навигация по странице:

  • Имя сущности Определение

  • Родительская сущность Дочерняя сущность Имя связи Тип связи

  • тестирование

  • Имя сущности Наименование атрибута Ключ

  • Имя сущности Наименование атрибута Ключ

  • Детерминанта Функциональная часть

  • Шифр домена Наименование домена Определение домена

  • Создание регистрационных имен, имен пользователей и ролей в базе данных

  • Разработка защищенной автоматизированной информационной системы те-стирования знаний кредитных инспекторов в коммерческом банке. Курсовая_Шевченко_БАСО-03-18. Курсовая работа по дисциплине Разработка и эксплуатация защищенных автоматизированных систем (наименование дисциплины)


    Скачать 2.54 Mb.
    НазваниеКурсовая работа по дисциплине Разработка и эксплуатация защищенных автоматизированных систем (наименование дисциплины)
    АнкорРазработка защищенной автоматизированной информационной системы те-стирования знаний кредитных инспекторов в коммерческом банке
    Дата19.05.2023
    Размер2.54 Mb.
    Формат файлаdocx
    Имя файлаКурсовая_Шевченко_БАСО-03-18.docx
    ТипКурсовая
    #1142883
    страница11 из 12
    1   ...   4   5   6   7   8   9   10   11   12

    2.2 Проектирование, реализация и защита базы данных создаваемой защищенной автоматизированной системы персональных данных




    2.2.1 Проектирование логического уровня модели данных



    В качестве метода проектирования базы данных (БД) решено использовать метод семантического моделирования данных (сущность-связь) в нотации IDEF1X, являющейся подмножеством SADT методологии. Инструментальным средством реализации метода семантического моделирования данных выбрано CASE-средство CA ERwin Data Modeler, в котором уровни представления модели данных разделены на логический и физический.

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

    В CA ERwin Data Modeler различают 3 подуровня логического уровня модели данных, отличающиеся по глубине представления информации о данных:

    1) ER-диаграмма – диаграмма «Сущность-связь»;

    2) KB-модель – модель данных, основанная на ключах;

    3) FA-модель – полная атрибутивная модель.

    Полученные в результате исследования предметной области данные о сущностях и их определения представлены в таблице 2.1.
    Таблица 2.1 – Сущности и их определения

    Имя сущности

    Определение

    Банк

    Данные о банке, в котором проводится тестирование

    Эксперт

    Данные об эксперте, проводящем тестирование

    Сотрудник

    Данные о сотруднике, проходящем тестирование

    Тестирование

    Данные о тестировании

    Вопрос

    Банк вопросов для тестирования

    Вариант_ответа

    Варианты ответов к вопросам

    Ответ_сотрудника

    Ответ, который дал сотрудник

    Результат

    Результат тестирования сотрудника


    Данные о выявленных связях между сущностями, полученные в результате многоаспектного анализа предметной области, отображены в таблице 2.2.
    Таблица 2.2 – Связи между сущностями

    Родительская сущность

    Дочерняя сущность

    Имя связи

    Тип связи

    Семантика связи от родительской сущности к дочерней

    Банк

    Сотрудник

    БАНК-СОТР

    НИД 1:М

    Направляет

    Эксперт

    Тестирование

    ЭКСП-ТЕСТ

    1:М

    Проводит

    Тестирование

    Вопрос

    ТЕСТ-ВОПР

    НИД 1:М

    Состоит из

    Вопрос

    Вариант ответа

    ВОПР-ВАР_ОТВ

    1:М

    Содержит

    Сотрудник

    Ответ

    сотрудника

    СОТР-ОТВ_СОТР

    1:М

    Дает

    Вопрос

    Ответ

    сотрудника

    ВОПР-ОТВ_СОТР

    1:М

    Принимает

    Тестирование

    Результат

    ТЕСТ-РЕЗ

    1:М

    Имеет

    Сотрудник

    Результат

    СОТР_РЕЗ

    НИД 1:М

    Получает


    На основе данных из этой таблицы была сформирована ER-диаграмма, представленная на рисунке 2.4.

    Рисунок 2.4 – ER-диаграмма базы данных тестирования

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

    1. каждый банк обладает уникальным идентификатором;

    2. каждый банк может направлять сотрудников;

    3. каждый сотрудник обладает уникальным идентификатором;

    4. каждый эксперт обладает уникальным идентификатором;

    5. каждый эксперт проводит тестирование;

    6. каждый сотрудник проходит тестирование;

    7. каждое тестирование обладает уникальным идентификатором;

    8. тестирование состоит из вопросов;

    9. каждый вопрос обладает уникальным идентификатором;

    10. вопрос может содержать варианты ответа;

    11. каждый вариант ответа обладает уникальным идентификатором;

    12. сотрудник на каждый вопрос дает ответ;

    13. каждый ответ обладает уникальным идентификатором;

    14. каждое тестирование имеет результат;

    15. каждый сотрудник имеет результат тестирования;

    16. каждый результат обладает уникальным идентификатором.


    Для каждой сущности были определены первичные ключи, на основе следующих требований:

    1. атрибуты первичного ключа не могут принимать неопределенных значений;

    2. атрибуты первичного ключа должны однозначно идентифицировать экземпляр сущности;

    3. количество атрибутов в первичном ключе должно быть минимальным.

    В результате была сформирована KB-модель, которая представлена на рисунке 2.5.

    Рисунок 2.5 – КВ-модель базы данных тестирования

    знаний кредитных инспекторов
    В таблице 2.3 отображены атрибуты выявленных ранее сущностей. Основные функциональные зависимости отражены в таблице 2.4.
    Таблица 2.3 – Атрибуты сущностей

    Имя сущности

    Наименование атрибута

    Ключ

    Банк

    id_банка

    PK

    Название_банка




    Сотрудник

    id_сотрудника

    PK

    Фамилия_сотрудника




    Имя_сотрудника




    Отчество_сотрудника




    Пол_сотрудника




    Телефон_сотрудника




    Email_сотрудника




    Дата_рождения_сотрудника




    Должность_сотрудника




    id_банка

    FK



    Окончание таблицы 2.3

    Имя сущности

    Наименование атрибута

    Ключ

    Эксперт

    id_эксперта

    PK

    Фамилия_эксперта




    Имя_эксперта




    Отчество_эксперта




    Телефон_эксперта




    Email_эксперта




    Тестирование

    id_тестирования

    PK

    Название_тестирования




    Количество_вопросов




    Количество_попыток




    Минут_на_тест




    id_эксперта

    FK

    Вопрос

    id_вопроса

    PK

    Текст_вопроса




    Открытый_тип




    id_тестирования

    FK

    Вариант ответа

    id_варианта_ответа

    PK

    id_вопроса

    FK

    Текст_ответа




    Правильность_ответа




    Ответ сотрудника

    id_ответа

    PK

    id_сотрудника

    FK

    id_вопроса

    FK

    Текст_ответа




    Результат

    id_результата

    PK

    id_сотрудника

    FK

    id_тестирования

    FK

    Текст_результата




    Дата_результата




    Номер_сертификата





    Таблица 2.4 – Функциональная зависимость

    Детерминанта

    Функциональная часть

    id_банка

    Название_банка

    id_сотрудника

    Фамилия_сотрудника, Имя_сотрудника, Отчество_сотрудника, Пол_сотрудника, Телефон_сотрудника, Email_сотрудника, Дата_рождения_сотрудника, Должность_сотрудника

    id_тестирования

    Название_тестирования, Количество_вопросов, Количество_попыток, Минут_на_тест

    id_вопроса

    Текст_вопроса, Открытый_тип

    id_ответа

    Текст_ответа

    id_варианта_ответа

    Текст_ответа, Правильность_ответа

    id_результата

    Текст_результата, Дата_результата, Номер_сертификата


    В результате на логическом уровне представления данных была сформирована FA-модель предметной области, представленная на рисунке 2.6.

    Рисунок 2.6 – FA-модель базы данных тестирования

    знаний кредитных инспекторов

    2.2.2 Проектирование физического уровня модели данных


    Физическая модель данных, в отличии от логической, ориентирована на конкретную СУБД, фактически являясь отображением системного каталога. В физической модели содержится информация обо всех объектах БД. Поскольку стандартов на объекты БД не существует, физическая модель зависит от конкретной реализации СУБД.

    Различают два подуровня физического уровня модели данных:

    • Т-модель (Transformation Model) - трансформационная модель;

    • модель DBMS (Database-Management System) – модель СУБД.

    Для построения трансформационной модели необходимо определить домены атрибутов сущностей, области их допустимых значений, а также типы данных. В таблице 2.5 отображены необходимые данные и примеры значений, используемые в базе данных. Домены определены в таблице 2.6.
    Таблица 2.5 – Домены атрибутов сущностей

    Шифр домена

    Наименование

    домена

    Определение домена

    Тип данных

    Пример

    значения

    D1

    Порядковый номер

    Целое число, принимает уникальные значения

    int

    10

    D2

    Дата

    ГГГГ-ММ-ДД, где ГГГГ – четыре цифры, год (от 0001 до 9999), ММ – две цифры, месяц (от 01 до 12), ДД – две цифры, число (от 01 до 31)

    date

    1970-01-01

    D3

    Дата

    ГГГГ-ММ-ДД чч:мм:сс, где ГГГГ – четыре цифры, год (от 0001 до 9999), ММ – две цифры, месяц (от 01 до 12), ДД – две цифры, число (от 01 до 31), чч – две цифры, час (от 00 до 23), мм – две

    datetime

    1970-01-01 00:00:00


    Окончание таблицы 2.5

    Шифр домена

    Наименование

    домена

    Определение домена

    Тип данных

    Пример

    значения







    цифры, минута (от 00 до 59), сс – две цифры, секунда (от 00 до 59)







    D4

    Строка символов переменной длины

    Множество символьных значений переменной длины не более 200 символов

    varchar(200)

    Иванов Иван Иванович

    D5

    Строка символов переменной длины

    Множество символьных значений переменной длины не более 50 символов.

    varchar(50)

    Кредитный инспектор

    D6

    Строка символов переменной длины

    Множество символьных значений переменной длины не более 30 символов.

    varchar(30)

    Иван

    D7

    Битовый флаг

    Целое число, может принимать значения 1 или 0

    bit

    1


    Таблица 2.6 – Поля таблиц, их описание и домены

    Имя

    сущности

    Наименование атрибута

    Ключи

    Определенность значений

    Шифр домена

    Банк

    id_банка

    PK

    1

    D1

    Название_банка




    1

    D5

    Сотрудник

    id_сотрудника

    PK

    1

    D1

    Фамилия_сотрудника




    1

    D6

    Имя_сотрудника




    1

    D6

    Отчество_сотрудника







    D6

    Пол_сотрудника




    1

    D6

    Телефон_сотрудника




    1

    D6

    Email_сотрудника




    1

    D5

    Дата_рождения_сотрудника




    1

    D2

    Должность_сотрудника




    1

    D5

    id_банка

    FK

    1

    D1


    Окончание таблицы 2.6

    Имя

    сущности

    Наименование атрибута

    Ключи

    Определенность значений

    Шифр домена

    Эксперт

    id_эксперта

    PK

    1

    D1

    Фамилия_эксперта




    1

    D6

    Имя_эксперта




    1

    D6

    Отчество_эксперта







    D6

    Телефон_эксперта




    1

    D6

    Email_эксперта




    1

    D5

    Тестирование

    id_тестирования

    PK

    1

    D1

    Название_тестирования




    1

    D5

    Количество_вопросов




    1

    D1

    Количество_попыток




    1

    D1

    Минут_на_тест




    1

    D1

    id_эксперта

    FK

    1

    D1

    Вопрос

    id_вопроса

    PK

    1

    D1

    Текст_вопроса




    1

    D4

    Открытый_тип




    1

    D7

    id_тестирования

    FK

    1

    D1

    Вариант

    ответа

    id_варианта_ответа

    PK

    1

    D1

    id_вопроса

    FK

    1

    D1

    Текст_ответа




    1

    D4

    Правильность_ответа




    1

    D7

    Ответ

    сотрудника

    id_ответа

    PK

    1

    D1

    id_сотрудника

    FK

    1

    D1

    id_вопроса

    FK

    1

    D1

    Текст_ответа




    1

    D4

    Результат

    id_результата

    PK

    1

    D1

    id_сотрудника

    FK

    1

    D1

    id_тестирования

    FK

    1

    D1

    Текст_результата




    1

    D6

    Дата_результата




    1

    D3

    Номер_сертификата




    0

    D6

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

    Рисунок 2.7 – Т-модель базы данных тестирования знаний

    кредитных инспекторов
    Далее была разработана DBMS-модель в виде SQL-кода, представленного в приложении А. Его реализация позволила сформировать и построить системный каталог БД MS SQL Server.

    2.2.3 Реализация модели данных в СУБД (MS SQL Server)


    Реализация модели данных будет происходить по средству передачи (в режиме прямого проектирования) схемы автоматизированной информационной системы тестирования знаний кредитных инспекторов в СУБД MS SQL Server 2019, а также заполнением данными с помощью файла Microsoft Excel 97-2003.

    На основе разработанной в CA ERWin DM физической модели данных выполним автоматическую генерацию системного каталога базы данных тестирования знаний кредитных инспекторов (БДТЗКИ) на сервере SQL Server 2019. Здесь особенностью является то, что до осуществления передачи модели базы данных из CA ERWin DM на сервер там должна быть заранее создана пустая база данных. Процесс создания такой пустой базы данных с именем «База данных тестирования знаний кредитных инспекторов» показан на рисунках 2.8-2.10.

    Рисунок 2.8 – Переход к созданию новой базы данных


    Рисунок 2.9 – Создание БДТЗКИ


    Рисунок 2.10 – Системный каталог баз данных
    Как видно из рисунка 2.10, созданная нами база данных отображается в системном каталоге, следовательно, можно сделать вывод, что процесс создания был выполнен успешно.

    Процесс генерации схемы базы данных из модели данных называется прямым проектированием (Forward Engineering). При генерации схемы ERwin Data Modeler создает триггеры ссылочной целостности, хранимые процедуры, индексы, ограничения и другие объекты, доступные для выбранной СУБД. В результате мы получаем SQL-скрипт создания схемы.

    Процесс создания и генерации схемы продемонстрирован на рисунках 2.11-2.12.

    Рисунок 2.11 – Переход к генерации схемы


    Рисунок 2.12 – SQL-скрипт создания схемы
    После выполнения полученного скрипта убедимся в его корректности и проверим наличие созданных таблиц. Как видно из рисунка 2.13, в системном каталоге отображаются все таблицы, следовательно, можно сделать вывод, что скрипт выполнился успешно.

    Рисунок 2.13 – Список таблиц в БДТЗКИ
    На основе полученных таблиц создадим диаграмму базы данных. Полученная диаграмма представлена на рисунке 2.14.

    Рисунок 2.14 – Диаграмма БДТЗКИ
    Далее заполним базу данных путем импорта данных из файла Microsoft Excel. Для каждой таблицы был создан лист Excel, заполненный соответствующими данными. Пример такого листа для таблицы Тестирование представлен на рисунке 2.15.

    Рисунок 2.15 – Данные для таблицы Тестирование
    Далее произведём импорт данных из файла Excel в базу данных БДТЗКИ. Процесс осуществления импорта данных представлен на рисунках 2.16-2.18.

    Рисунок 2.16 – Переход к импорту данных


    Рисунок 2.16 – Выбор файла для импорта данных


    Рисунок 2.17 – Выбор назначения импорта данных


    Рисунок 2.18 – Выбор таблиц для импорта данных
    После осуществления процедуры импорта данных убедимся, что все прошло успешно. Для этого выведем все данные из таблицы Тестирование. Как видно из рисунка 2.19, в таблице Сотрудник содержатся те же данные, что и в исходном Excel-файле, следовательно, можно сделать вывод, что импорт данных прошел успешно.

    Рисунок 2.19 – Выборка данных из таблицы Тестирование

    2.2.4 Построение системы защиты базы данных



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

    С помощью инструкции языка Transact-SQL создадим регистрационные имена main_admin и user1 с соответствующими паролями p34xkwFo и 3C78snyr в БДТЗКИ. После реализации регистрационных имен проверим их наличие с помощью системного каталога. Процесс и результат создания регистрационных имен представлены на рисунках 2.20-2.21.

    Рисунок 2.20 – Создание регистрационных имен main_admin и user1

    Рисунок 2.21 – Наличие созданных регистрационных имен

    в системном каталоге
    Как видно из рисунка 2.21, регистрационные имена были успешно созданы. Далее для полученных выше регистрационных имен создадим с помощью инструкций языка T-SQL соответствующие имена пользователей Admin111 и User111. После создания пользователей проверим их наличие с помощью системного каталога. Процесс и результат создания представлен на рисунках 2.22-2.23.

    Рисунок 2.22 – Создание имен пользователей Admin111 и User111


    Рисунок 2.23 – Наличие созданных имен пользователей

    в системном каталоге
    Как видно из рисунка 2.23, имена пользователей были успешно созданы. Теперь создадим две новые определяемые пользователем роли базы данных AdminRole и UserRole, после чего проверим их наличие с помощью системного каталога и отобразим информацию о полученных ролях и их членах. Процесс и результат создания представлен на рисунках 2.24-2.25.

    Рисунок 2.24 – Создание ролей AdminRole и UserRole


    Рисунок 2.25 – Наличие созданных ролей AdminRole и UserRole

    в системном каталоге

    Как видно из рисунка 2.25, роли AdminRole и UserRole были успешно созданы.
    Выдача разрешений

    Для реализации разрешений воспользуемся инструкциями языка Transact-SQL. Используя инструкцию GRANT, предоставим пользователю Admin111 разрешение на создание таблиц, а также на обновление столбцов и вставку строк в столбцы таблиц Эксперт, Тестирование, Вопрос и Вариант_ответа, а пользователю User111 – разрешение на считывание значений столбцов таблицы Результат. Код запроса для реализации разрешений представлен на рисунке 2.26.

    Рисунок 2.26 – Реализация разрешений для пользователей

    Admin111 и User111
    Обратимся к свойствам пользователей Admin111 и User111 и убедимся, что разрешения были успешно предоставлены. Разрешения, имеющиеся у пользователей Admin111 и User111 представлены на рисунках 2.27-2.31.

    Рисунок 2.27 – Разрешения пользователя Admin111

    для таблицы Вариант_ответа


    Рисунок 2.28 – Разрешения пользователя Admin111

    для таблицы Вопрос


    Рисунок 2.29 – Разрешения пользователя Admin111

    для таблицы Тестирование


    Рисунок 2.30 – Разрешения пользователя Admin111

    для таблицы Эксперт


    Рисунок 2.31 – Разрешения пользователя User111

    для таблицы Результат
    Далее с помощью инструкции DENY запретим пользователю User111 считывать значения из таблицы Вариант_ответа. Для этого выполним запрос, представленный на рисунке 2.32.

    Рисунок 2.32 – Реализация запрета для пользователя User111
    Обратимся к свойствам пользователя User111 и убедимся, что запрет был успешно установлен. Как видно из рисунка 2.33, пользователь User111 не может считывать значения столбцов таблицы Вариант_ответа.


    Рисунок 2.33 – Запрет пользователя User111
    Шифрование базы данных

    Одним из способов шифрования данных в SQL Server является прозрачное шифрование. Шифрование файлов базы данных выполняется на уровне страницы. Страницы в зашифрованной базе данных шифруются до записи на диск и дешифруются при чтении в память. Прозрачное шифрование данных не увеличивает размер зашифрованной базы данных. Чтобы зашифровать базу данных способом прозрачного шифрования, необходимо выполнить следующие шаги:

    1. создать главный ключ;

    2. создать сертификат, защищенный главным ключом;

    3. создать ключ шифрования БД и защитить его с помощью сертификата;

    4. включить шифрование БД.

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

    Приступим к шифрованию базы данных. Прежде всего необходимо создать главный ключ базы данных. Для этого выполним запрос, код которого представлен на рисунке 2.34.

    Рисунок 2.34 – Создание главного ключа базы данных
    Далее создадим резервную копию главного ключа и сохраним его в файле masterkey.mk. Для этого выполним запрос, код которого представлен на рисунке 2.35.

    Рисунок 2.35 – Создание резервной копии главного ключа базы данных

    Далее создадим сертификат, защищенный главным ключом. Для этого выполним запрос, код которого представлен на рисунке 2.36.

    Рисунок 2.36 – Создание сертификата
    Теперь создадим резервную сертификата и сохраним его в файле credit_cert.cer. Для этого выполним запрос, код которого представлен на рисунке 2.37.

    Рисунок 2.37 – Создание резервной копии сертификата
    Далее создадим ключ шифрования, защищенный сертификатом, и включим шифрование базы данных БЗТЗКИ. Для этого выполним запрос, код которого представлен на рисунке 2.38.

    Рисунок 2.38 – Шифрование базы данных БДТЗКИ
    Перейдем в свойства базы данных БДТЗКИ и убедимся, что шифрование включено. Как видно из рисунка 2.39, шифрование базы данных БДТЗКИ включено.

    Рисунок 2.39 – Свойства БДТЗКИ

    1   ...   4   5   6   7   8   9   10   11   12


    написать администратору сайта