Средства управления и защиты информационных ресурсов автоматизированных систем
Покупка
Издательство:
Издательство Уральского университета
Автор:
Парфенов Юрий Павлович
Год издания: 2020
Кол-во страниц: 120
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7996-3088-1
Артикул: 799099.01.99
Материалы пособия направлены на развитие компетенций, полученных студентами при изучении дисциплины базы данных в части использования средств управления данными при разработке ERP- и MES-систем. В пособии подробно рассматриваются средства для создания программных модулей серверной компоненты корпоративной информационной системы с использованием как структурного языка запросов, так и алгоритмических языков в Common Language Runtime. Особое внимание уделяется средствам разработки эффективных многопользовательских транзакционных систем. Изложение каждой темы сопровождается примерами использования и контрольными вопросами. На примере MS SQL SERVER излагаются модели и средства защиты данных и программ серверной компоненты от несанкционированного использования.
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации Уральский федеральный университет имени первого Президента России Б. Н. Ельцина Ю. П. Парфёнов Средства управления и защиты информационных ресурсов автоматизированных систем Уч е б н ое п особ ие Рекомендовано методическим советом Уральского федерального университета для студентов вуза, обучающихся по направлению подготовки 09.03.01 — Информатика и вычислительная техника Екатеринбург Издательство Уральского университета 2020
УДК 004.056.5(075.8) ББК 32.971.35-5я73 П18 Рецензенты: кафедра менеджмента и управления качеством Уральского государственного лесотехнического университета (завкафедрой д-р техн. наук, проф. В. П. Часовских); директор ООО «ТЭКСИ-СОФТ» Д. А. Виницкий Научный редактор — канд. техн. наук, доц. К. А. Аксёнов П18 Парфёнов, Ю. П. Средства управления и защиты информационных ресурсов автоматизированных систем : учебное пособие / Ю. П. Парфёнов ; Мин-во науки и высш. образования РФ. — Екатеринбург : Изд-во Урал. ун-та, 2020. — 120 с. ISBN 978-5-7996-3088-1 Материалы пособия направлены на развитие компетенций, получен ных студентами при изучении дисциплины базы данных в части использования средств управления данными при разработке ERP- и MES-систем. В пособии подробно рассматриваются средства для создания программных модулей серверной компоненты корпоративной информационной системы с использованием как структурного языка запросов, так и алгоритмических языков в Common Language Runtime. Особое внимание уделяется средствам разработки эффективных многопользовательских транзакционных систем. Изложение каждой темы сопровождается примерами использования и контрольными вопросами. На примере MS SQL SERVER излагаются модели и средства защиты данных и программ серверной компоненты от несанкционированного использования. Библиогр.: 16 назв. Табл. 4. Рис. 19. УДК 004.056.5(075.8) ББК 32.971.35-5я73 ISBN 978-5-7996-3088-1 © Уральский федеральный университет, 2020
Основные сокращения БД — база данных КИС — корпоративная информационная система ОС — операционная система СУБД — система управления базами данных API — application programming interface BLOB — Binary Large Object (большой двоичный объект) CLR — Common Language Runtime (общеязыковая среда выполнения программ) DEK — Database Encryption Key (симметричный ключ для шифрования пользовательской базы) DMK — Database master key (главный ключ базы Master) ERP (Enterprise Resource Planning) — планирование ресурсов предприятия MRP — Material Requirement Planning (планирование по требностей в материалах) SMK — (Service Master Key) асимметричный ключ службы MS SQL SERVER TDE — Transparent Data Encryption (прозрачное шифрование баз данных)
Введение Введение В пособии рассматриваются средства создания и защиты информационных ресурсов в автоматизированных системах предприятий. Ресурсы предприятия объединяют структурированные дан ные, сосредоточенные в информационных базах, файлы различного формата и назначения, а также специальные программы обработки этих данных. Значительное внимание в пособии уделено средствам создания транзакционных систем, интегрирующих в общей базе двоичные объекты большого объема. Излагаются средства загрузки, хранения, обработки и защиты больших объектов при совместном доступе в многопользовательском режиме. Применительно к MS SQL SERVER рассматривается созда ние хранимых в общей базе программных модулей на TransactSQL и в управляемом коде. Дается подробная информация об организации защиты дан ных базы от несанкционированного доступа и средствам шифрования данных. Пособие ориентировано на студентов бакалавриата, знакомых со средствами создания и использования баз данных.
1.1. Транзакции реляционной базы данных 1. Управление информационными ресурсами в транзакционных системах Т ранзакционной принято считать информационную систему, которая обеспечивает гарантированное выполнение отдельных независимых заданий — транзакций. Если по причине отказа оборудования или программного обеспечения выполнить задание не удается, то оно просто не выполняется. В корпоративных ERP- и MRP-системах информационные ресурсы многих пользователей объединяются в общей базе данных. Для эффективного функционирования системы важно обеспечить независимую параллельную обработку информации в различных бизнес- и технологических процессах. Для независимого доступа и обработки информации в серверах баз данных предусмотрены средства создания и выполнения параллельных транзакций. В транзакциях обеспечивается необходимая защита обрабатываемых данных от действия других транзакций путем установки различных блокировок или созданием версий (копий) обрабатываемых данных. 1.1. Транзакции реляционной базы данных Транзакция — набор команд SQL, выполняющий запросы или изменения данных, приводящие базу в новое допустимое состояние. Транзакция должна либо выполниться целиком,
1. Управление информационными ресурсами в транзакционных системах либо целиком не выполниться, сохраняя данные в исходном состоянии. Данные, обрабатываемые в транзакции, являются объектом защиты как от отказов сервера, так от действий других параллельно работающих транзакций (пользователей) [1]. Таким образом, с помощью транзакций решаются две проблемы обработки БД: - сохранение целостности данных базы в условиях возможного отказа программы или оборудования; - защита данных при их одновременной обработке несколькими пользователями. - Стандарт SQL/92 установил требования к транзакциям, называемые ACID: Atomicity, Consistency, Isolation, Durability. - Атомарность (Atomicity), или неделимость транзак ции — изменения, выполненные транзакцией, целиком принимаются (фиксируются в базе) или целиком отменяются (откат базы к исходному состоянию). Дополнительными установками в параметре подключения SET XACT_ABORT OFF можно задать возможность частичного исполнения транзакции. - Согласованность (Consistency) — данные в БД до нача ла транзакции и после ее выполнения должны соответствовать всем ограничениям базы, в том числе и ограничениям ссылочной целостности. Однако в процессе выполнения транзакции ограничения могут быть нарушены. - Изолированность (Isolation). Изменения в базе, вносимые одновременно выполняемыми транзакциями, должны быть независимы друг от друга. Результат каждой изолированной транзакции должен определяться состоянием БД до ее начала и выполняемым действием. - Устойчивость (Durability). Результаты выполненной до конца транзакции должны гарантированно сохраняться в базе на диске.
1.1. Транзакции реляционной базы данных Далее в примерах использования транзакций рассматривается учебная база данных печатных изданий (PUBS). В базе содержатся данные об авторах, написанных ими книгах и данные о продажах книг. Схема БД представлена на рис. 1.1. Авторы Связь M:N Издания Продажи Рис. 1.1. ER-диаграмма учебной базы PUBS Рассмотрим примеры применения транзакций. Пусть в базе изданий необходимо изменить значения ключа (au_id) в записи одного из авторов. Такое изменение требует выполнения двух операторов UPDATE (для таблицы authors и таблицы titleauthor). Однако если при выполнении второго оператора произойдет прерывание программы по ошибке или «зависание» сервера, вторая таблица не будет обновлена и соответствие между строками таблиц нарушится. Значит, наборы операторов, выполняющих одну задачу, должны выполняться в одной транзакции. Программа замены значения ключа автора также должена предусматривать наличие ограничения ссылочной целостности типа «Restrict» между строками таблиц authors и titleauthor, которое не позволит изменить ключ в поле au_id ни в одной из таблиц. Поэтому перед выполнением первого обновления (UPDATE) необходимо отключить это ограничение командой ALTER TABLE … NOCHECK … . Полная
1. Управление информационными ресурсами в транзакционных системах транзакция обновления ключей ссылочной целостности должна состоять из следующих действий. 1. Отключение ограничения ссылочной целостности (ALTER TABLE …NOCHECK …) 2. Выполнения первого оператора UPDATE, который, из менив ключи в одной таблице, приведет данные к несогласованному состоянию (согласованность должна быть обеспечена после выполнения транзакции). 3. Обновление (UPDATE) ключа в другой таблице, которое вернет соответствие данных. 4. Восстановить проверку ограничения по внешнему ключу au_id таблицы titleauthor оператором ALTER TABLE с опцией CHECK. Другой пример — использование транзакций в запросах к БД. Пусть из таблицы titles необходимо выбрать издания, имеющие цену выше, чем средняя цена издания. Для решения такой задачи надо сначала выполнить запрос, вычисляющий среднюю цену издания, а в следующем запросе воспользоваться найденным значением для отбора изданий. Если между этими двумя запросами другой пользователь изменит цену хотя бы одного издания, добавит или удалит издание, результат запроса будет неверным. Поэтому для защиты данных эти запросы надо выполнить в одной транзакции. Реализация требований ACID для транзакций БД обеспечи вается с помощью двух средств MS SQL SERVER: - журнала транзакций, - менеджера блокировок. Журнал транзакций (transaction log) создается в отдель ных файлах ОС. Запись изменений данных в журнал осуществляется до сохранения ее в файлах БД на диске. Поэтому журнал может быть использован для восстановления данных при отказе сервера. В журнале для каждой транзакции сохра- няются:
1.1. Транзакции реляционной базы данных - момент времени выполнения (начало и окончание) транзакции. Время используется для повторения цепочки действий в базе в хронологической последовательности; - старые (до изменения) и новые (измененные транзакцией) записи или страницы базы данных; - признак завершения транзакции; - отметка о фиксации результата транзакции на диске в файлах БД. Информация журнала используется при перезапуске сервера в случае его отказа следующим образом: - производится изменение данных, выполненное в завершенных транзакциях, которое еще не было записано в БД на диске; - выполняется откат — возвращение в исходное состояние измененных страниц в БД для незаконченных (незафиксированных) транзакций. Кроме того, журнал может быть использован для внесения последних изменений базы при ее восстановлении с ранее созданной копии. Обработку базы данных после повторного запуска, отказавшего («зависшего») сервера, демонстрирует рис. 1.2. Момент сохранения изменений БД на диске (КТ) Момент отказа сервера БД Рис. 1.2. Диаграмма параллельного выполнения транзакций В момент отказа сервера результат транзакции T1 был записан на диск, поэтому данная транзакция не требует обработки.
1. Управление информационными ресурсами в транзакционных системах Транзакции T2 и T4 были выполнены, но в журнале нет от метки о фиксации на диске, поэтому сервер в хронологическом порядке переписывает обновленные страницы из журнала в файлы БД на диске. Транзакции T3 и Т5 не была завершены, поэтому для них будет выполнен откат путем копирования из журнала старого состояния измененных страниц, а сами транзакции удалены из журнала. При восстановлении БД по журналу нет способа установить, какие именно транзакции не выполнены. Это можно сделать только по состоянию БД и результату работы приложений в момент отказа. Различные серверы БД поддерживают разные типы тран закций. В MS SQL Sever реализованы три типа транзакций: - автоматические (фоновые), - неявные (фоновые), - явные. Автоматические транзакции создаются сервером БД по умолчанию. В режиме автоматических транзакций никаких действий по созданию транзакций пользователь не предпринимает. Каждая SQL-команда выполняется как отдельная транзакция. Если команда не была прервана, ее результат будет зафиксирован в базе, если команда вызвала исключение, сервер выполнит откат базы к состоянию, предшествующему началу команды. На время выполнения команды доступ к используемым записям автоматически блокируется сервером. В новом соединении транзакции выполняются в автоматическом режиме. Затем тип фоновых транзакций в соединении может быть изменен на неявные транзакции. Неявные (имплицированные) транзакции. С момента пере ключения соединения на неявные транзакции все действия с БД выполняются в одной транзакции. Первая поступившая в соединении SQL-команда создает транзакцию, в которой далее выполняются все последующие операторы. За любым очередным оператором текущая транзакция может заканчиваться, а ее ре