Администрирование базами данных

Цель занятия: усвоить знания о порядке такой организации работы пользователей с базой данных, чтобы база данных всегда была работоспособна.

План

    Функции администратора БД.

    Методы защиты БД.

    Резервирование и восстановление БД.

    Оптимизация работы БД,

    Правовая охрана баз данных

  1. Функции администратора бд

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

В номенклатуре специалистов, обеспечивающих проектирование, создание, эксплуатацию и использование АИС, соответственно, выделилась отдельная категория, называемая «администраторами систем (баз данных)», играющих ключевую роль в процессах информационного обеспечения деятельности предприятий и организаций.

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

Термин «администрирование » определяет комплекс процессов при создании, эксплуатации и использовании АИС, связанных с обеспечением надежности и эффективности функционирования АИС, безопасности данных и организацией коллективной работы пользователей различных категорий.

Этот комплекс процессов можно разделить по решаемым задачам на следующие группы:

    обеспечение и поддержание настройки структурного, интерфейсного и технологического компонентов АИС на структуру и процессы предметной области системы;

    обеспечение надежности и сохранности данных;

    организация и обеспечение коллективной работы пользователей с общими данными.

Первое направление обусловливает участие администратора системы в этапах проектирования и ввода АИС в эксплуатацию. Администратор при этом выступает экспертом в команде разработчиков по выбору СУБД и ее особенностям в плане реализации тех или иных компонент концептуальной схемы создаваемого банка данных, участвует в процессах создания типовых запросов, экранных форм для ввода и вывода данных, шаблонов отчетов. На этапе проектирования и, в особенности, в процессе дальнейшей эксплуатации при наполнении системы данными администратор системы производит анализ адекватности и эффективности спроектированной внутренней схемы базы данных и при необходимости может осуществлять ее корректировку. Для обеспечения таких функций некоторые СУБД содержат специальный программный инструментарий в виде анализаторов быстродействия и оптимальности баз данных.

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

Еще одной важной функцией, особенно на этапе ввода информационной системы в эксплуатацию, является первоначаль ное наполнение системы данными . Во многих случаях для этого могут быть использованы данные из других информационных систем, находящихся, возможно, в других физических форматах и с другой логической организацией. Импорт данных из внешних источников, как правило, требует высокой квалификации по возможностям используемой в АИС СУБД, детального представления логической и физической организации данных в АИС и выполняется вследствие этого администратором системы. В фактографических АИС на основе реляционных СУБД подобные задачи решаются на основе запросов на создание таблиц, источник данных для которых находится во внешних базах или в файлах других форматов (электронные таблицы, текстовые файлы). Соответственно, особенности функционирования АИС могут требовать решения и обратных задач, то есть задач экспорта данных во внешние системы и другие форматы. Такие задачи в большинстве случаев также решаются администраторами АИС.

Обеспечение надежности и сохранности данных является одной из главных обязанностей администратора АИС и включает, в свою очередь, решение ряда следующих технологических и профилактических задач:

    планирование, конфигурирование и поддержание системы использования устройств внешней памяти, на которых размещаются файлы данных;

    архивирование и резервирование данных;

    восстановление данных после сбоев и повреждений;

Проверка и поддержание целостности данных.

Большой объем файлов баз данных, как уже отмечалось, обусловливает их размещение на устройствах дисковой (внешней) памяти. Поэтому отдельной задачей при проектировании АИС является определение схемы размещения файлов базы данных системы на устройствах внешней памяти, контроль за ее состоянием в процессе эксплуатации АИС.

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

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

Сходные задачи ревизии данных решаются администратором также в тех случаях, когда устанавливаются временные регламенты хранения данных и устаревшие данные должны своевременно обновляться или удаляться из системы.

Большой комплекс функций администратора АИС связан с организацией и обеспечением коллективной работы пользова телей с общими данными. Еще на этапе проектирования АИС с непосредственным участием будущего администратора системы разрабатывается организационная схема функционирования и использования АИС. Исходя из особенностей технологических процессов в предметной области и круга решаемых задач, определяются функциональные группы работников, отвечающих за ввод, обработку и использование общих данных системы. На этой основе строится перечень и схема пользователей системы, определяются их конкретные функции, полномочия, разрабатываются необходимые технологические и интерфейсные элементы (входные и выходные экранные формы, запросы, шаблоны отчетов и т. д.), прорабатываются и устанавливаются внутренние параметры и характеристики коллективной обработки данных (размещение данных, параметры блокировок, обмена и т. д.). Администратор АИС, по сути, является как раз организатором и руководителем этих технологических процессов организации работы эксплуатационного персонала и абонентов-пользователей системы.

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

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

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

Следует также отметить, что организационно администраторы АИС являются отдельными штатными категориями работников информационных служб, подчиняясь непосредственно руководителям таких служб, или во многих случаях, собственно, и выполняя функции руководителя службы информационного обеспечения предприятия, организации, отдельного подразделения.

Введение

1.Администратор базы данных – основные понятия

1.1 Понятие, классификация и функции администратора базы данных

1.2 Обязанности, связи и средства администратора современных систем управления базами данных

2.Администрирование базы данных

2.1 Управление данными в базах данных

2.3 Управление безопасностью в СУБД

Заключение

Глоссарий

Библиографический список

Приложение 1

Приложение 2

Приложение 3


Введение

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

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

Проблема исследования «Администрирование базы данных» заключается в возможности дать исчерпывающие ответы на поставленные вопросы: что представляет собой администрирование базы данных, в чем заключаются его основные функции и задачи, его значение для стабильной и эффективной работы базы данных.

Актуальность исследования «Администрирование базы данных» несомненна. Можно провести аналогию между администратором баз данных и ревизором предприятия. Ревизор защищает ресурсы предприятия, которые называются деньгами, а администратор – ресурсы, которые называются данными. Нельзя рассматривать администратора баз данных только как квалифицированного технического специалиста, так как это не соответствует целям администрирования. Уровень администратора баз данных в иерархии организации достаточно высок: чтобы определять структуру данных и право доступа к ним, администратор должен знать, как работает предприятие и как используются соответствующие данные.

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

Цель исследования заключается в изучении администрирования базы данных

Задачи исследования формируются исходя из его цели и заключаются в следующем: 1. Рассмотреть понятие, классификацию и функции администратора базы данных. 2.Рассмотреть обязанности, связи и средства администратора современных систем управления базами данных. 3.Изучить основные направления и принципы администрирования базы данных.

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

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

Функционирование базы данных (БД) невозможно без участия специалистов, обеспечивающих создание, функционирование и развитие базы данных. Такая группа специалистов называется администратором базы данных (АБД). Эта группа специалистов считается составной частью базы данных.

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

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

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

Администраторы базы данных выполняют большой круг разнообразных функций:

1. Анализ предметной области: описание предметной области, выявление ограничений целостности, определение статуса информации, определение потребностей пользователей, определение статуса пользователей, определение соответствия «данные – пользователь», определение объемно-временных характеристик обработки данных.

2. Проектирование структуры базы данных: определение состава и структуры информационных единиц, составляющих базу данных, задание связей между ними, выбор методов упорядочения данных и методов доступа к информации, описание структуры БД на языке обработки данных (ЯОД).

3. Задание ограничений целостности при описании структуры базы данных и процедур обработки БД: задание ограничений целостности, присущих предметной области, определение ограничений целостности, вызванных структурой базы данных, разработка процедур обеспечения целостности БД при вводе и корректировке данных, обеспечение ограничений целостности при параллельной работе пользователей в многопользовательском режиме.

4. Первоначальная загрузка и ведение базы данных: разработка технологии первоначальной загрузки и ведения (изменения, добавления, удаления записей) БД, проектирование форм ввода, создание программных модулей, подготовка исходных данных, ввод и контроль ввода.

5. Защита данных от несанкционированного доступа:

– обеспечение парольного входа в систему: регистрация пользователей, назначение и изменение паролей;

– обеспечение защиты конкретных данных: определение прав доступа групп пользователей и отдельных пользователей, определение допустимых операций над данными для отдельных пользователей, выбор/создание программно-технологических средств защиты данных; шифрование информации с целью защиты данных от несанкционированного использования;

– тестирование средств защиты данных;

– фиксация попыток несанкционированного доступа к информации;

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

6. Защита данных от разрушений. Одним из способов защиты от потери данных является резервирование. Используется как при физической порче файла, так и в случае, если в БД внесены нежелательные необратимые изменения.

7. Обеспечение восстановления БД: разработка программно-технологических средств восстановления БД, организация ведения системных журналов.

8. Анализ обращений пользователей к БД: сбор статистики обращений пользователей к БД, ее хранение и анализ (кто из пользователей, к какой информации, как часто обращался, какие выполнял операции, время выполнения запросов, анализ причин безуспешных (в т.ч. и аварийных) обращений к БД.

9. Анализ эффективности функционирования базы данных и развитие системы: анализ показателей функционирования системы (время обработки, объем памяти, стоимостные показатели), реорганизация и реструктуризация баз данных, изменение состава баз данных, развитие программных и технических средств.

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

11. Подготовка и поддержание системных программных средств: сбор и анализ информации о СУБД и других прикладных программ, приобретение программных средств, их установка, проверка работоспособности, поддержание системных библиотек, развитие программных средств.

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

Классификация АБД

Существует несколько видов администраторов БД, а их обязанности вполне могут отличаться от компании к компании. Вот характеристики некоторых типов АБД и занимаемых ими положений:

Оперативные (operational) АБД:

манипулируют дисковым пространством

наблюдают за текущей производительностью системы

реагируют на возникающие неисправности БД

обновляют системное ПО и ПО базы данных

контролируют структурные изменения БД

запускают процедуры резервного копирования данных

выполняют восстановление данных

создают и управляют тестовыми конфигурациями БД

Тактические (tactical) АБД:

реализуют схемы размещения информации

утверждают процедуры резервного копирования и восстановления данных;

разрабатывают и внедряют структурные элементы БД: таблицы, столбцы, размеры объектов, индексацию и т.п.;

сценарии(scripts) изменения схемы БД;

конфигурационные параметры БД

утверждают план действий в случае аварийной ситуации

Стратегические (strategic) АБД:

выбирают поставщика БД

устанавливают корпоративные стандарты данных

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

устанавливают корпоративный подход к ликвидации последствий аварии и обеспечению доступности данных

Старшие (senior) АБД:

досконально знают свой персонал

пользуются высоким спросом

могут написать скрипт, который освободит их из запертого сундука, брошенного в океан, и чрезвычайно гордятся своими произведениями

тратят уйму времени на подготовку младших АБД

очень ценятся руководством и получают бешеные деньги

Младшие (junior) АБД:

мечтают стать старшим АБД

не слишком сильны в написании скриптов

имеют большую склонность к использованию средств управления БД

тоже неплохо получают

Прикладные (application) АБД:

в курсе информационных нужд компании

помогают в разработке прикладных задач

отвечают за разработку схемы и ее изменения

вместе с системным АБД обеспечивают должный уровень резервирования/ восстановления данных

занимаются построением тестовых БД

Системные (system) АБД:

отвечают за все необходимое для резервирования и восстановления данных

контролируют производительность системы в целом

осуществляют поиск и устранение неисправностей

в курсе нынешних и будущих потребностей БД в плане емкости

в курсе текущего состояния и нужд БД

Наемные (contract) АБД:

приглашаются под конкретную задачу или в качестве консультантов

передают персоналу необходимые знания

фиксируют свои действия!

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

хороши в качестве временного персонала, для оценки проекта или системы

Администраторы-руководители:

проводят еженедельные совещания

определяют перечень первоочередных задач

устанавливают и оглашают официальный курс и стратегию

утверждают и корректируют должностные инструкции и список обязанностей

следят за наличием соответствующей документации

Поскольку система баз данных может быть весьма большой и может иметь много пользователей, должно существовать лицо или группа лиц, управляющих этой системой. Такое лицо называется администратором базы данных (АБД).

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

В обязанности администратора могут входить:

инсталляция и обновление версий сервера и прикладных инструментов

распределение дисковой памяти и планирование будущих требований системы к памяти

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

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

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

зачисление пользователей и поддержание защиты системы

соблюдение лицензионного соглашения

управление и отслеживание доступа пользователей к базе данных

отслеживание и оптимизация производительности базы данных

планирование резервного копирования и восстановления

поддержание архивных данных на устройствах хранения информации

осуществление резервного копирования и восстановления

обращение в корпорацию за техническим сопровождением

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

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

В обязанности разработчика приложений входит:

проектирование и разработка приложений базы данных

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

оценка требований памяти для приложения

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

передача вышеупомянутой информации администратору базы данных

настройка приложения в процессе его разработки

установка мер по защите приложения в процессе его разработки

В процессе своей деятельности администратор базы данных взаимодействует с другими категориями пользователей банка данных, а также и с «внешними» специалистами, не являющимися пользователями базы данных.

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

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

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

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

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

Администраторы базы данных взаимодействуют и с внешними по отношению к нему группами специалистов и, прежде всего, поставщиками СУБД и ППП, администраторами других баз данных.

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

На эффективность работы базы данных оказывают влияние множество внешних и внутренних факторов. Возрастание сложности и масштабов базы данных, высокая «цена» неправильных или запоздалых решений по администрированию БД, высокие требования к квалификации специалистов делают актуальной задачу использования развитых средствах автоматизированного (или даже автоматического) администрирования базы данных.

Средства администрирования включены в состав всех СУБД. Особенно развиты эти средства в корпоративных СУБД. Кроме того, появился целый класс специализированного программного обеспечения: средства DBA (DataBase Administration – администрирование базы данных).

Типичные функции средств DBA представлены в Приложении (см. Приложение 1).

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

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

Управление буферами оперативной памяти. СУБД обычно работают с БД значительного размера; по крайней мере этот размер обычно существенно превышает доступный объем оперативной памяти. Понятно, если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Единственным же способом реального увеличения этой скорости является буферизация данных в оперативной памяти. И даже если операционная система производит общесистемную буферизацию (как в случае ОС UNIX), этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части БД. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов. При управлении буферами основной памяти приходится разрабатывать и применять согласованные алгоритмы буферизации, журнализации и синхронизации. Заметим, что существует отдельное направление СУБД, которые ориентированы на постоянное присутствие в оперативной памяти всей БД. Это направление основывается на предположении, что в предвидимом будущем объем оперативной памяти компьютеров сможет быть настолько велик, что позволит не беспокоиться о буферизации. Пока эти работы находятся в стадии исследований.

Управление транзакциями. Транзакция – это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует (COMMIT) изменения БД, произведенные ею, во внешней памяти, либо ни одно из этих изменений никак не отражается в состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД.

Таким образом, поддержание механизма транзакций – обязательное условие даже однопользовательских СУБД (если, конечно, такая система заслуживает названия СУБД). Но понятие транзакции гораздо существеннее во многопользовательских СУБД. То свойство, что каждая транзакция начинается при целостном состоянии БД и оставляет это состояние целостным после своего завершения, делает очень удобным использование понятия транзакции как единицы активности пользователя по отношению к БД. При соответствующем управлении параллельно выполняющимися транзакциями со стороны СУБД каждый пользователь может в принципе ощущать себя единственным пользователем СУБД (на самом деле, это несколько идеализированное представление, поскольку пользователи многопользовательских СУБД порой могут ощутить присутствие своих коллег).

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

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

Журнализация. Одно из основных требований к СУБД – надежное хранение данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных вида аппаратных сбоев: так называемые мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания), и жесткие сбои, характеризуемые потерей информации на носителях внешней памяти. Примерами программных сбоев могут быть аварийное завершение работы СУБД (из-за ошибки в программе или некоторого аппаратного сбоя) или аварийное завершение пользовательской программы, в результате чего некоторая транзакция остается незавершенной. Первую ситуацию можно рассматривать как особый вид мягкого аппаратного сбоя; при возникновении последней требуется ликвидировать последствия только одной транзакции.

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

Журнал – это особая часть БД, недоступная пользователям СУБД и поддерживаемая особо тщательно (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД. В разных СУБД изменения БД журнализуются на разных уровнях: иногда запись в журнале соответствует некоторой логической операции изменения БД (например, операции удаления строки из таблицы реляционной БД), а порой запись соответствует минимальной внутренней операции модификации страницы внешней памяти. В некоторых системах одновременно используются оба подхода.

Во всех случаях придерживаются стратегии «упреждающей» записи в журнал (так называемого протокола Write Ahead Log – WAL). Грубо говоря, эта стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Известно, если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.

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

При мягком сбое во внешней памяти основной части БД могут находиться объекты, модифицированные транзакциями, не закончившимися к моменту сбоя, и могут отсутствовать объекты, модифицированные транзакциями, которые к моменту сбоя успешно завершились (по причине использования буферов оперативной памяти, содержимое которых при мягком сбое пропадает). При соблюдении протокола WAL во внешней памяти журнала должны гарантированно находиться записи, относящиеся к операциям модификации обоих видов объектов. Целью процесса восстановления после мягкого сбоя является состояние внешней памяти основной части БД, которое возникло бы при фиксации во внешней памяти изменений всех завершившихся транзакций и которое не содержало бы никаких следов незаконченных транзакций. Чтобы этого добиться, сначала производят откат незавершенных транзакций (undo), а потом повторно воспроизводят (redo) те операции завершенных транзакций, результаты которых не отображены во внешней памяти. Этот процесс содержит много тонкостей, связанных с общей организацией управления буферами и журналом. Более подробно мы рассмотрим это в соответствующей лекции.

Для восстановления БД после жесткого сбоя используют журнал и архивную копию БД. Грубо говоря, архивная копия – это полная копия БД к моменту начала заполнения журнала (имеется много вариантов более гибкой трактовки смысла архивной копии). Конечно, для нормального восстановления БД после жесткого сбоя необходимо, чтобы журнал не пропал. Как уже отмечалось, к сохранности журнала во внешней памяти в СУБД предъявляются особо повышенные требования. Тогда восстановление БД состоит в том, что исходя из архивной копии по журналу воспроизводится работа всех транзакций, которые закончились к моменту сбоя. В принципе можно даже воспроизвести работу незавершенных транзакций и продолжить их работу после конца восстановления. Однако в реальных системах это обычно не делается, поскольку процесс восстановления после жесткого сбоя является достаточно длительным.

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

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

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

Таким образом, защита баз данных предусматривает предотвращение любых преднамеренных и непреднамеренных угроз с использованием компьютерных и некомпьютерных средств контроля. Следует также защищать: современные информационные системы; глобальную связанность (выход в Internet); разнородность (различные платформы); технологию «клиент-сервер». (см. Приложение 3).

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

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

Аутентификация и идентичность. Проверка подлинности пользователя приложений базы данных чаще всего осуществляется либо через соответствующие механизмы операционной системы, либо через определенный SQL-оператор: пользователь идентифицируется своим именем, а средством аутентификации служит пароль. Авторизация –предоставление прав (привилегий), позволяющих владельцу иметь законный доступ к объектам базы данных. Аутентификация – механизм определения того, является ли пользователь тем, за кого он себя выдает. Эта процедура позволяет организовать контролируемый доступ к информационной системе (пользователь – идентификатор – пароль). Пароль – наиболее распространенный метод аутентификации, но он не дает абсолютной гарантии, что пользователь является именно тем, за кого себя выдает. При использовании такого подхода создаются значительные сложности для повторных проверок и исключает подобные проверки перед каждой транзакцией. Средства аутентификации на основе личных карточек или эквивалентного механизма дали бы приложению большую свободу в реализации контроля за подлинностью пользователей.

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

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

Привилегии в СУБД могут быть разделены на две категории: привилегии безопасности и привилегии доступа. Привилегии безопасности позволяют выполнять административные действия, привилегии доступа определяют права доступа субъектов к определенным объектам.

До выполнения процедуры присваивания привилегий их необходимо создать.

Привилегии можно подразделить в соответствии с видами объектов, к которым они относятся: таблицы и представления, процедуры, базы данных сервер базы данных. Применительно к таблицам могут быть определены следующие права доступа: право на выборку, удаление, обновление, добавление, право на использование внешних ключей, ссылающихся на данную таблицу. По умолчанию пользователь не имеет никаких прав доступа ни таблицам, ни к представлениям. По отношению к процедурам можно предоставить право на их выполнение, однако при этом не указываются привилегии на право доступа к объектам, обрабатываемым процедурами. Это позволяет выделять неконтролируемый доступ для выполнения строго определенных операций над данными. По отношению к базе данных выделяемые права на самом деле являются запретительными: ограничение на число операций ввода/вывода строк, число строк, возвращаемым одним запросом.

Оператор позволяет реализовать следующие виды ограничений доступа:

операционные ограничения (за счет прав доступа операторов выборки, вставки, удаления и обновления, применяемые ко всем или отдельным столбцам таблицы);

ограничения по значениям (за счет механизма представлений);

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

СУБД предоставляет специфическое средство управление доступом – представления, которые позволяют делать видимыми только отдельные столбцы базовых таблиц. В результате выполнения запроса к представлению, а не к таблице может быть возвращена таблица из нуля строк, а не код ответа, свидетельствующий о нарушении прав доступа. Это важно, поскольку этот ответ лишает возможности поиска ответа другим путем, например, через анализ кодов, ответов, возвращаемых после обработки SQL-запросов.

Управление доступом базируется на реализации следующего минимального набора действий: произвольное управление доступом; обеспечение безопасности повторного использования объектов; использование меток безопасности; принудительное управление доступом.

Произвольное управление доступом – метод ограничения доступа к объектам, основанный на учете личности субъекта или групп, в которую субъект входит. Группа – это именованная совокупность пользователей; объединение субъектов в группы облегчает процесс администрирования данных, и строится на основе формальной структуры организации. Эта технология обеспечивает владельцу объекта (представления, сервера базы данных, процедуры, таблицы) передачу по своему усмотрению привилегий другому лицу. Этим лицом в данной ситуации может выступать субъект-пользователь, группа пользователей и такой возможный носитель привилегий как роль.

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

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

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

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

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

Метка безопасности состоит из двух частей: уровня секретности и списка категорий. Первая составляющая зависит от приложения и в стандартном варианте может выглядеть как спектр значений от «совершенно секретно» до «несекретно». Вторая составляющая позволяет описать предметную область, разделяя информацию «по отсекам», что способствует лучшей защищенности. Метки безопасности строк таблица неявно добавляются к каждой строке реляционного отношения.

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

Механизм меток безопасности не отменяет, а дополняет произвольное управление доступом: пользователи по-прежнему могут оперировать с таблицами только в рамках своих привилегий, но получать только часть данных столбец в метками безопасности не включается в результирующую таблицу). Основная проблема, имеющая место при использовании меток безопасности, поддержание их целостности. Это означает, что все объекты и субъекты должны быть помечены и при любых операциях с данными метки должны оставаться правильными. При добавлении или изменении строк метки, как правило, наследуют метки безопасности пользователя, инициировавшего операцию. Таким образом, даже если авторизованный пользователь перепишет секретную информацию в общедоступную таблицу, менее благонадежные пользователи не смогут ее прочитать.

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

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

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

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

Протоколирование и аудит. Аудит – проверка того, все ли предусмотренные средства управления задействованы и соответствуют уровню защищенности установленным требованиям. Такая мера как протоколирование и аудит состоит в следующем: обнаружение необычных и подозрительных действий пользователей и идентификация лиц, совершивших эти действия; оценка возможных последствий состоявшегося нарушения; оказание помощи; организация пассивной защиты информации от нелегальных действий пользователя: поддержка точности вводимых данных; поддержка документации в активном виде; корректное тестирование пользователей.

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

Сохранение информации базы данных на диски, помещаемые затем в безопасное место, уже длительное время активно применяется для информационных систем. При архивировании сохраняются пространства базы данных и многочисленная сопутствующая информация, необходимая для последующего восстановления. Резервное копирование – периодически выполняемая процедура получения копии базы данных и ее журнала изменений на носителе, сохраняемом отдельно от системы. Надо помнить, что архив отражает состояние базы данных на время начала архивирования. Резервные копирования логических журналов транзакций сохраняет файлы журналов; интерпретация последних позволяет восстановить базу данных до состояния, более позднего, чем момент последнего архивирования. На основании полученной информации из архива и/или резервной копии может быть осуществлено восстановление как архивной информации (физическое восстановление), так и более свежие состояние базы данных (логическое восстановление). Можно перечислить возможности службы восстановления на примере СУБД Informix: архивировании в горячем режиме, т.е. без прерывания работы сервера; резервное копирование журналов транзакций; сохранение на удаленных устройствах; сохранение по заранее определенному расписанию без участия оператора; сжатие и шифрование информации. Контрольные точки – момент синхронизации между состоянием базы данных и журнала транзакция. В это время принудительно выгружаются содержимое буфера оперативной памяти на устройства вторичной памяти.

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

Следующий механизм, обеспечивающий высокий уровень отказоустойчивости – технология тиражирования данных. Тиражирование данных – это асинхронный перенос изменений объектов исходной базы данных в базы, принадлежащие различным узлам распределенной системы. В конфигурации серверов базы данных выделяют один основной и ряд вторичных. В обычном режиме работы основной сервер выполняет чтение и обновление данных, обеспечивает перенос зафиксированных изменений на вторичные серверы. В случае отказа основного сервера его функции автоматически (вручную) переводятся на вторичный сервер в режим работы “чтение + запись”. После восстановления функций основного сервера ему может быть присвоен статус вторичного, а вторичному делегированы все полномочия основного (при этом обеспечивается непрерывная доступность данных). Процедура тиражирования осуществляется либо в синхронном, либо в асинхронном режиме. Благодаря первому осуществляется гарантированность полной согласованности данных, т.е. на вторичном сервере будут зафиксированы все транзакции, выполненные на основном. Асинхронный режим улучшает рабочие характеристики системы, не всегда обеспечивая полную согласованность (стоит заметить, что далеко не во всех задачах требуется синхронизация фиксации; достаточно поддерживать тождественность данных лишь в критические моменты времени).

Защита коммуникаций между клиентом и сервером. Проблема защиты коммуникаций между клиентом и сервером в информационных системах не является специфичной для СУБД. Для обеспечения защиты информации выделяется сервис безопасности, в функции которого входит аутентификация, шифрование и авторизация. Эти вопросы были рассмотрены выше.

Отражение угроз, специфичных для СУБД. Однако главный источник угроз для СУБД лежит в самой природе баз данных. Наличие специфического непроцедурного языка SQL, процедур и механизм правил – все это обеспечивает потенциальному злоумышленнику средства для получения информации, на которую он не имеет полномочий. Нередко нужную, но недоступную по статусу информацию можно получить путем логического вывода. Например, используя операцию вставки, а не выбора (на которую прав нет), анализировать коды завершения SQL-операторов, и получать информацию о наборе первичных ключей. Для борьбы с подобными угрозами используется механизм размножения строк для СУБД, поддерживающий метки безопасности. Суть этого метода состоит в том, чтобы в состав первичного ключа добавлять метку безопасности, что обеспечивает одновременное хранение в базовой таблице несколько экземпляров строк с одинаковыми значениями важных ключей.

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

Таким образом, можно определить некоторые стратегии в области безопасности: минимум привилегий; разделение обязанностей; эшелонированная оборона (сервер базы данных, средства защиты СУБД и операционной системы); разнообразие средств защиты; невозможность перехода в небезопасное состояние; всеобщая поддержка мер безопасности; «человеческий фактор».

На основании проведенного исследования «Администрирование баз данных» можно сделать следующие выводы.

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

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

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

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

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

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

Таким образом, можно сделать определенные обобщения.

Администратор базы данных – это: управляющий данными, а не хозяин; системный программист определенного профиля, а также эксперт высшего уровня, обеспечивающий службу эксплуатации решениями по процедурам и регламентам работы; лицо, принимающее окончательное решение в своей области, и человек, обладающий способностями к общению, совместному планированию и компромиссам.

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

База данных

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


Документографическая база данных

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

Информационный продукт

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

Локальная база данных

база данных, размещенная на одном или нескольких носителях на одном компьютере


Объектно-ориентированная база данных

база данных, в которой данные оформлены в виде моделей объектов, включающих прикладные программы, которые управляются внешними событиями

Распределенная база данных

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

Реляционная база данных

база данных, построенная на основе реляционной модели. В реляционной базе каждый объект задается записью (строкой) в таблице.

Реляционная база создается и затем управляется с помощью реляционной системы управления базами данных

Система управления базами данных (СУБД)

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

Система управления распределенными базами данных

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

В СУРБД используется комбинация централизованного и локального способов хранения данных

Структура базы данных

принцип или порядок организации записей в базе данных и связей между ними


1.Веретенникова Е.Г., Патрушина С.М., Савельева Н.Г. Информатика: Учебное пособие. Серия «Учебный курс», –М., 2002.

2.Гуде С.В., Ревин С.Б. Информационные системы. Учебное пособие. –М., 2002.

3.Дунаев С. Доступ к базам данных и техника работы в сети. Практические приемы современного программирования. – М., 2005.

4.Информатика: Учебник/Каймин В.А., 2-е изд. перераб. и доп. – М: Инфра-М., 2002.

5.Информатика: Учебник/Под ред. Н.В.Макаровой, 3-е изд., перераб. и доп. – М.: Финансы и статистика, 2001.

6.Информатика: Учебник для вузов/Острейковский В.А., М: Высшая школа, 2001.

7.Информатика: Учебник для вузов/Козырев А.А. – СПб., 2002.

8.Мейер Д. Теория реляционных баз данных: пер. с англ. – М., 2005.

9.Ревунков Г.И., Самохвалов Э.Н., Чистов В.В. Базы и банки данных и знаний. Учебник для вузов//Под ред. В.Н.Четверикова. – М., 2003.

10.Фаронов В.В., Шумаков П.В. Руководство разработчика баз данных. – М.: Нолидж, 2000.

11.Фундаментальные основы информатики: социальная информатика.: Учебное пособие для вузов / Колин К.К. – М.: Академ.проект: Деловая книга Екатеринбург, 2000.

Таблица 1. - Типичные функции средств DBA


Мониторинг работы БД, реакция на нештатные ситуации

Наблюдение за объектами БД, анализ, сопоставление характеристик

Оптимизация хранения данных, оптимизация работы сервера

Сопровождение БД, файлов, табличных пространств, откатных сегментов

Слежение за использованием ресурсов, выдача статистики

Планирование необходимых вычислительных мощностей

Анализ свободного пространства, устранение дефрагментации

Перенос таблицы на новое пространство, в другую СУБД, на другой компьютер

Обнаружение и исправление возникающих неполадок

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

Наблюдение за параметрами, влияющими на производительность БД



Рис.1 - Обобщенная структура системы управления базой данных

Рис.1 - Архитектура «клиент-сервер»

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

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

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

Положения

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

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

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

Знания

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

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

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

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

Кроме этого, от сотрудника требуется наличие знаний по экономике, трудовому законодательству, управленческой деятельности и прочие правила, регламентирующие его нормальную работу в компании. Специалист также должен знать, как правильно оформляется техническая документация.

Функции

В обязанности администратора входит выполнение им определенных функций:

  • поддержание актуальности информации, хранимой на серверах компании;
  • управление базами, их организация;
  • комплексная защита;
  • проверка системы и предотвращение заражения ее вирусами.

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

Обязанности

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

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

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

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

Другие обязанности

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

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

Права

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

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

Ответственность

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

А дминистрирование базы данных – это функция управления базой данных (БД). Лицо ответственное за администрирование БД называется “Администратор базы данных” (АБД) или “Database Administrator” (DBA).

Функция “администрирования данных” стала активно рассматриваться и определяться как вполне самостоятельная с конца 60-х годов. Практическое значение это имело для предприятий, использующих вычислительную технику в системах информационного обеспечения для своей ежедневной деятельности. Специализация этой функции с течением времени совершенствовалась, но качественные изменения в этой области стали происходить с началом использования так называемых интегрированных баз данных. Одна такая база данных могла использоваться для решения многих задач.

Таким образом, сформировалось определение БД как общего информационного ресурса предприятия, которое должно находиться всегда в работоспособном состоянии. И как для каждого общего ресурса значительной важности, БД стала требовать отдельного управления. Во многих случаях это было необходимо для обеспечения её повседневной эксплуатации, её развития в соответствии с растущими потребностями предприятия. К тому же БД и технология её разработки постоянно совершенствовались и уже требовались специальные знания высокого уровня для довольно сложного объекта, которым стала база данных. Отсюда функция управления базой данных и получила название “Администрирование базы данных”, а лицо ею управляющее стали называть “Администратор баз данных”.

Администратор базы данных (DBA)

Администратор базы данных (АБД) или Database Administrator (DBA) – это лицо, отвечающее за выработку требований к базе данных, её проектирование, реализацию, эффективное использование и сопровождение, включая управление учётными записями пользователей БД и защиту от несанкционированного доступа. Не менее важной функцией администратора БД является поддержка целостности базы данных.

АБД имеет код специальности по общероссийскому классификатору профессий рабочих, должностей служащих и тарифных разрядов (ОКПДТР) - 40064 и код 2139 по Общероссийскому классификатору занятий (ОКЗ). Код 2139 ОКЗ расшифровывается следующим образом: 2 - СПЕЦИАЛИСТЫ ВЫСШЕГО УРОВНЯ КВАЛИФИКАЦИИ, 21 - Специалисты в области естественных* и инженерных наук, 213 - Специалисты по компьютерам, 2139 - Специалисты по компьютерам, не вошедшие в другие группы.

История

Классические подходы к наполнению содержанием понятия "АБД" стали формироваться после издания рабочего отчета группы по базам данных Американского Национального Института Стандартов ANSI/X3/SPARC в 1975 года. В этом отчете была описана трехуровневая архитектура СУБД, в которой выделялся уровень внешних схем данных, уровень концептуальной схемы данных и уровень схемы физического хранения данных. В соответствии с этой архитектурой определялись три роли АБД: администратор концептуальной схемы, администратор внешних схем и администратор хранения данных. Эти роли в случае очень маленькой системы мог играть один человек, в большой системе для выполнения каждой роли могла назначаться группа людей. Каждой роли соответствовал набор функций, а все эти функции вместе составляли функции АБД.

В 1980 - 1981 г. в американской литературе стало принятым включать в функции АБД:

  • организационное и техническое планирование БД,
  • проектирование БД,
  • обеспечение поддержки разработок прикладных программ,
  • управление эксплуатацией БД.

В нашей стране в это же время первое определение АБД в ГОСТ-ах задало слишком узкий состав функций АБД:

  • подготовка вычислительного комплекса к установке СУБД, участие в установке и приемке СУБД и самой БД с комплексом прикладных программ
  • управление эксплуатацией БД
  • подготовка словарей и другой НСИ - нормативно-справочной информации - к моменту начала испытания БД

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

К середине 90-х годов сложились еще не завершенные, но уже достаточно устойчивые и полные методологии разработки систем с базами данных. Основная работа по планированию информационных потребностей предприятия, проектированию концептуальной и логической схемы БД, внешних схем, используемых в отдельных процессах обработки информации, ложится теперь на группу проектирования Автоматизированной Системы (АС). Становиться и более определённым объем функций АБД. Это обеспечение надежной и эффективной работы пользователей и программ с БД, поддержка разработчиков в их доступе к БД и средствам разработки.

Основные задачи

Задачи АБД могут незначительно отличаться в зависимости от вида применяемой СУБД, но в основные задачи входит:

  • Проектирование базы данных.
  • Оптимизация производительности базы данных
  • Обеспечение и контроль доступа к базе данных
  • Обеспечение безопасности в базе данных
  • Резервирование и восстановление базы данных
  • Обеспечение целостности баз данных
  • Обеспечение перехода на новую версию СУБД

Основные типы

Среди АБД нет строгого документального разграничения по типам. Но можно выделить несколько общих видов АБД, в зависимости от возложенных на них обязанностей:

  • Системный администратор
  • Архитектор БД
  • Аналитик БД
  • Разработчик моделей данных
  • Администратор приложении
  • Проблемно-ориентированный администратор БД
  • Аналитик производительности
  • Администратор хранилища данных

Должностная инструкция

Как таковой официальной версии должностной инструкции администратора базы данных не существует. Имеется несколько документов, различающихся в основном оформлением и содержанием некоторых пунктов. Естественно, ни о какой подробной расшифровке задач администратора базы данных в этих документах речи не идёт. Должностная инструкция - это, прежде всего документ, регламентирующий производственные полномочия и обязанности работника. И хотя в некоторых организациях изменяют текст должностной инструкции в соответствии с условиями специфики работы, не стоит ожидать в ней прямых указаний на то, что надо делать администратору. В большинстве случаев такие детальные директивы работы регламентируются другими документами (например, инструкция по резервному копированию, инструкция по обеспечению информационной безопасности при работе с базами данных).

Ниже приведены несколько типовых вариантов должностных инструкций найденных в интернете:

Зарплаты

Оплата труда администраторов баз данных может варьироваться от $1500 до $3000. Наибольшим спросом пользуются администраторы MS SQL или Oracle. Исследовательский центр портала Superjob.ru провёл в 2008 году обзор зарплат по позиции «Администратор баз данных Oracle» в 9 городах России. По этим данным средняя зарплата московских специалистов составляет 70000 руб. в месяц, в Санкт-Петербурге 55000 руб., в Ростове-на-Дону и Самаре 34000 руб. По диапазонам зарплат администраторы Oracle делятся на три уровня. От того в какой уровень попадёт администратор влияет знание серверного оборудования, кластерных технологий, операционных систем, стаж работы, высшее образование, владение английским языком, наличие квалификационных сертификатов и свидетельств об окончании курсов Oracle.

Управление данными в базах данных

Управляет БД администратор (АБД). Следует отметить, что при рассмотрении всего контура управления БД на физическом уровне, не касаясь характера процессов, протекающих в технических устройствах при обеспечении управления БД, следует учитывать и операционную систему (ОС) ЭВМ, поскольку программы управления БД выполняются непосредственно под управлением ОС и во многих случаях наравне с другими программами, (например, программы решения инженерных расчетных задач) во многопрограммном режиме. Поэтому дисциплины обслуживания программ, заложенные в используемую ОС, существенно сказываются на полном времени обработки запросов пользователей. Рекомендуемое время реакции системы на запрос человека, исходя из его психологических характеристик, не превышает 3с. И таким образом, если ОС будет задерживать программы управления БД в общей очереди, выполняемых на ЭВМ программ на большие промежутки времени, то условие не будет реализовано. НО не будим останавливаться на работе ОС и технических средств, рассмотрим только работу элементов контура управления БД, реализующих управление на уровне самих данных, то есть работу АБД и СУБД. Отметим, что выделение уровней рассмотрения является условным, поскольку группа АБД может контролировать работу ОС и технических средств.

СУБД представляет собой специальный пакет программ, с помощью которого, как уже было отмечено, реализуется централизованное управление БД и обеспечивается доступ к данным. В каждой СУБД прежде всего имеются компиляторы (трансляторы) либо интерпретаторы с языка описания данных (ЯОД) и языка манипулирования данными (ЯМД). При создании интегрированных БнД содержащих несколько разнотипных СУБД каждая из которых используется в отдельном локальном БнД и характеризуется наличием своего ЯОД и ЯМД, разрабатывают единые для всего интегрированного банка ЯОД и ЯМД, обеспечивающие работу с данными. И кстати Любого локального банка, входящего в состав интегрированного.

ЯОД представляет собой язык высокого уровня, предназначенный для описания схемы БД или ее части. С его помощью выполняется описание типов данных, подлежащих хранению либо выборке из базы, их структур и связей между собой. ЯОД не является процедурным языком. Исходные тексты (описание данных), написанные на этом языке, после трансляции отображаются в управляющие таблицы адресов памяти. В соответствии с полученным описанием СУБД находит в базе требуемые данные преобразует и передает их например, в прикладную программу (ПП), которой они потребовались, либо определяет место в памяти ЭВМ, куда их требуется поместить, и в каком виде, а также с какими данными установить, связь и какие имеющиеся данные требуется скорректировать. Кстати надо отметить, что в зависимости от алгоритма работы конкретной СУБД возможны различные варианты обработки исходных текстов описаний данных, составленных на ЯОД. В одних случаях описания всегда транслируются вначале, а затем, если нет синтаксических ошибок, выполняется дальнейшая обработка запроса, в котором они присутствовали. В других случаях возможна предварительная трансляция описаний для их отладки и выявления ошибок. После этого обычно с помощью средств используемой ОС готовые отлаженные описания (каждое со своим идентификатором) помещаются в специальную библиотеку, откуда СУБД их выбирает по идентификатору при обработке соответствующих запросов (идентификатор требуемого описания поступает в запросе). Кроме того, может использоваться режим интерпретации описаний при обработке запросов и журнализации.

Журнализация - это одно из основных требований к СУБД - надежное хранение данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных вида аппаратных сбоев: так называемые мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания), и жесткие сбои, характеризуемые потерей информации на носителях внешней памяти, так называемые жесткие диски (HDD). Примерами программных сбоев могут быть аварийное завершение работы СУБД (из-за ошибки в программе или некоторого аппаратного сбоя) или аварийное завершение пользовательской программы, в результате чего некоторая обработка данных остается незавершенной. Первую ситуацию можно рассматривать как особый вид мягкого аппаратного сбоя; при возникновении последней требуется ликвидировать последствия только одной обработки данных. Но в любом случае для восстановления БД нужно располагать некоторой дополнительной информацией. Другими словами, поддержание надежного хранения данных в БД требует избыточности хранения данных, причем та их часть, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенный метод поддержания такой избыточной информации - ведение журнала изменений БД.

Журнал - это так называемая особенная часть БД, недоступная для пользователя СУБД и поддерживаемая особо тщательно базой защиты (кстати можно поддерживать две копии журнала, располагаемые на разных физических дисках), в первую копию которую поступают записи обо всех изменениях основной части БД. А также во многих СУБД изменения баз данных журнализируются на разных уровнях: иногда запись в журнале имеет соответствие многих логических операции изменения БД (например, операции удаления строки из таблицы реляционной базы данных), а в некоторых случаях запись соответствует минимальной внутренней операции модификации страницы внешней памяти. В большинстве личных системах баз одновременно используются оба подхода. А также во всех случаях и при любых обстоятельствах придерживаются стратегии «предупреждающие » записи в журнале (так бы называемого протокола Write Ahead Log - WAL). Говоря своими словами, эта стратегия заключается в том, что запись об изменении любого объекта базы данных должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части базы данных. Так, как нам известно, что если в СУБД правильно соблюдается протокол WAL, то при помощи журнала можно решить даже очень сложные проблемы восстановления баз данных даже после глобального сбоя. К стати самая простая операция восстановления это провести индивидуальный откат изменений в базе данных. Проще говоря, для этого даже не понадобится общесистемный журнал изменений БД, для этого достаточно просто для каждой обработки данных поддерживать локальный журнал изменения операций базы данных, выполненных в этой транзакции, и производить откат транзакции, выполнением обратных данных операций, следуя от конца локального журнала. А в определенных СУБД так и делают, но хочу подметить, что в большинстве систем локальные журналы не поддерживают, а индивидуальный откат транзакции выполняют по общесистемному журналу, для того все записи от одной транзакции и связывают обратным списком (от конца к началу). А также при произошедшим мягком сбое во внешней памяти основной части БД, могут находиться объекты измененные транзакции не закончившимися к моменту сбоя системы базы и могут отсутствовать объекты измененные транзакциями которые к этому моменту сбоя успешно завершились по причине использования буферов оперативной памяти. А содержимое которых при мягком сбое просто пропадает. При соблюдении протокола WAL во внешней памяти журнала всегда должны гарантированно находить записи, относящиеся к операциям изменения обоих видов объектов. Для восстановления баз данных после жесткого сбоя используют журналы, а также архивную копию БД. Говоря своими словами, архивная копия баз данных - это полная копия БД к моменту начала работы заполнения журнала (имеется много вариантов более легкого и гибкого объяснения смысла архивной копии). Конечно, для нормальной операции по восстановлению БД после жесткого сбоя необходимо, чтобы журнал не пропал. Как уже пояснялось, к сохранности журнала во внешней памяти в СУБД требуются особо повышенные требования. И так операция по восстановлению БД состоит в том, что исходя из архивной копии по журналу, воспроизводится работа всех транзакций обработки данных, которые закончились к моменту сбоя. А также в принципе можно даже и воспроизвести работу незавершенных транзакций и продолжить их работу после восстановления базы данных. Однако во многих реальных системах это обычно не делается, поскольку процесс восстановления после жесткого сбоя является достаточно длительным.

Управление безопасностью в СУБД

Системы управления базами данных стали основным инструментом, обеспечивающим хранение больших массивов информации. Современные информационные приложения опираются, как уже говорилось, в первую очередь, на многопользовательские СУБД. В этой связи пристальное внимание в настоящее время уделяется проблемам обеспечения информационной безопасности, которая определяет степень безопасности организации, учреждения в целом. Таким образом, под информационной безопасностью понимают защищенность информации от случайных и преднамеренных воздействий естественного или искусственного характера несанкционированный доступ к данным чреватых нанесением ущерба владельцам или пользователям информации. Также к защите подлежат не только данные в базе, нарушения в защите могут повлиять на другие части системы, к примеру: удаление важных программ вирусами (вредоносные программы), отвечающих за работоспособность базы данных, что повлечет за собой разрушение базы данных. Поэтому защита баз данных охватывает и оборудование, и программное обеспечение, и персонал, и собственно банк данных. Таким образом, защита баз данных предусматривает предотвращение любых преднамеренных и непреднамеренных угроз с использованием компьютерных и некомпьютерных средств контроля. Следует также защищать современные информационные системы; глобальную связанность (выход в Internet); разнородность (различные платформы); технологию «клиент-сервер». Надо отметить, что, разрабатывая систему информационной безопасности, надо помнить, что, только защищая все составные части системы, можно достичь желаемого результата.

И так рассмотрим основные программно-технические меры, применение которых позволит решить некоторые из вышеперечисленных проблем. Аутентификация и идентичность; управление доступом; поддержка целостности; протоколирование и аудит; защита коммуникаций между клиентом и сервером; отражение угроз, специфичных для СУБД.

Аутентификация и идентичность- это проверка подлинности пользователя приложений базы данных чаще всего осуществляется либо через соответствующие механизмы операционной системы, либо через определенный SQL-оператора, например: пользователь идентифицируется своим именем, а средством аутентификации служит пароль. Авторизация - это предоставление прав (привилегий), позволяющих владельцу иметь законный доступ к объектам базы данных. Аутентификация - это механизм определения, является ли пользователь тем, за кого он себя выдает. Эта процедура позволяет организовать контролируемый доступ к информационной системе (пользователь - идентификатор - пароль). Пароль - это наиболее распространенный метод аутентификации, но он не дает абсолютной гарантии, что пользователь является именно тем, за кого себя выдает. При использовании такого подхода создаются значительные сложности для повторных проверок, и исключает подобные проверки перед каждой транзакцией. Средства аутентификации на основе личных карточек или эквивалентного механизма дали бы приложению большую свободу в реализации контроля подлинностью пользователей.

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

Привилегии в СУБД могут быть разделены на две категории: привилегии безопасности и привилегии доступа. Привилегии безопасности позволяют выполнять административные действия, привилегии доступа определяют права доступа субъектов к определенным объектам. До выполнения процедуры присваивания привилегий их необходимо создать. И так привилегии можно подразделить в соответствии с видами объектов, к которым они относятся: таблицы и представления, процедуры, базы данных сервер базы данных. Применительно к таблицам могут быть определены следующие права доступа: право на выборку, удаление, обновление, добавление, право на использование внешних ключей, ссылающихся на данную таблицу. По умолчанию пользователь не имеет никаких прав доступа ни к таблицам, ни к представлениям. По отношению к процедурам можно предоставить право на их выполнение, однако при этом не указываются привилегии на право доступа к объектам, обрабатываемым процедурами. Это позволяет выделять неконтролируемый доступ для выполнения строго определенных операций над данными. По отношению к базе данных выделяемые права на самом деле являются запретительными: ограничение на число операций ввода/вывода строк, число строк, возвращаемым одним запросом. Оператор позволяет реализовать следующие виды ограничений доступа:

операционные ограничения (за счет прав доступа операторов выборки, вставки, удаления и обновления, применяемые ко всем или отдельным столбцам таблицы);

ограничения по значениям (за счет механизма представлений);

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

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

И так рассмотрим, операцию управление доступом. Этот этап базируется на реализации следующего минимального набора действий: произвольное управление доступом; обеспечение безопасности повторного использования объектов; использование меток безопасности; принудительное управление доступом. А также произвольное управление доступом - это метод ограничения доступа к объектам, основанный на учете личности субъекта или групп, в которую субъект входит. Группа - это именованная совокупность пользователей; объединение субъектов в группы облегчает процесс администрирования баз данных, и строится на основе формальной структуры организации. Эта технология обеспечивает владельцу объекта (представления, сервера базы данных, процедуры, таблицы) передачу по своему усмотрению привилегий другому лицу. Таким лицом в данной ситуации может выступать субъект-пользователь, группа пользователей и такой возможный носитель привилегий как роль. Дальше привилегии можно распределить в зависимости от статуса пользователей (администратор сервера базы данных и база данных, прочие пользователи). А также следует отметить, что особенно важным следует считать поддержание уровня защиты привилегий, администратора сервера базы данных, так как. Хищения его пароля может привести к серьезным проблемам для всей хранящейся информации. Считается что главным достоинство применения произвольного управления доступом - это гибкость в управление защитой, однако такие сопутствующие характеристики как рассредоточенность управления и сложность централизованного контроля создают немало проблем для обеспечения безопасности данных. В качестве дополнения к средствам управления доступа можно отнести безопасность повторного использования объектов, которая должна гарантироваться для областей оперативной памяти, в частности, для буферов с образами экрана, расшифрованными паролем, для магнитных носителей. Следует также обратить внимание и на обеспечение безопасности повторного использования субъектов. Это означает лишение прав для входа в информационную систему всех пользователей, покинувших организацию. Специалисты по управлению безопасностью информации считают достаточным для большинства коммерческих приложений использование средств, произвольного управления доступом. И, тем не менее, остается нерешенной одна немало важная проблема слежение за передачей информации базы данных. Кстати, средства произвольного управления доступом не могут помешать авторизованному пользователю, законным путем получить конфиденциальную информацию и сделать ее доступной для других пользователей. И таким образом это происходит по той причине, что при произвольном управлении доступом привилегии существуют изолированно от данных. Для решения этой проблемы применяют подход, позволяющий осуществить разделение данных по уровням секретности и категориям доступа, называемый метками безопасности. Метка безопасности состоит из двух частей: уровня секретности и списка категорий. Первая составляющая зависит от приложения и в стандартном варианте может выглядеть как спектр значений от «совершенно секретно» до «несекретно». Вторая составляющая метки позволяет описать предметную область, разделяя информацию «по отсекам», что способствует лучшей защищенности. Метки безопасности строк таблиц добавляются к каждой строке реляционного отношения. Каждый пользователь также получает и собственную метку безопасности, которая определяет степень его благонадежности. Пользователь получает доступ к данным, если степень его благонадежности соответствует требованиям соответствующей метки безопасности, а именно: уровень секретности пользователя должен быть не ниже уровня секретности данных; набор категорий, заданных в метке безопасности данных, должен целиком находиться в метке безопасности пользователя.

Механизм меток безопасности не отменяет, а дополняет произвольное управление доступом: пользователи по прежнему могут оперировать с таблицами только в рамках своих привилегий, но получать только часть данных, столбец в метки безопасности не включается в результирующую таблицу. Основная проблема, имеющая место при использовании меток безопасности, поддержание их целостности. Это означает, что все объекты и субъекты должны быть помечены и при любых операциях с данными, метки должны оставаться правильными. При добавлении или изменении строк метки, как правило, наследуют метки безопасности пользователя, который считается инициатором операции. Таким образом, даже если авторизованный пользователь перепишет секретную информацию в общедоступную таблицу, менее благонадежные пользователи не смогут ее прочитать эту информацию и не каким образом не смогут овладеть данными.

Принцип принудительного управления доступом основан на сопоставлении меток безопасности субъекта и объекта. Для чтения информации из объекта необходимо доминирование метки субъекта над меткой объекта. При выполнении операции записи информации в объект необходимо доминирование метки безопасности (объекта над меткой субъекта). Этот способ управления доступом называется принудительным, так как не зависит от воли субъектов. Этот способ нашел применение в СУБД, отличающихся повышенными мерами безопасности. Обеспечение целостности данных не менее важная задача, чем управление доступом. Главными врагами баз данных являются ошибки оборудования, администраторов, прикладных программ и пользователей, а не злоумышленников. С точки зрения пользователей СУБД, основными средствами поддержания целостности данных являются: ограничения правил.

Ограничения могут поддерживаться непосредственно в рамках реляционной модели баз данных, а могут задаваться в процессе создания таблицы. Табличные ограничения могут относиться к группе столбцов, отдельным атрибутам. Ссылочные ограничения отвечают за поддержание целостности связей между таблицами. Ограничения накладываются владельцем таблицы и влияют на результат последующих операций с данными. Ограничения являются статическим элементом поддержания целостности, Так как. они или разрешают выполнять действие, или нет. Правила позволяют вызывать выполнение заданных процедур при определенных изменениях базы данных. Правила ассоциируются с таблицами и срабатывают при изменении этих таблиц. В отличие от ограничений, которые обеспечивают контроль относительно простых условий, правила позволяют проверять и поддерживать соотношения любой сложности между элементами данных в базе. В контексте информационной безопасности необходимо отметить, что создание правила, ассоциированного с таблицей, может реализовать только владелец этой таблицы. Пользователь, действия которого вызывают срабатывание правила, должен обладать лишь необходимыми правами доступа к таблице. Тем самым правила неявно расширяют привилегии пользователя. Подобные расширения должны контролироваться административно, так как даже незначительное изменение правила может кардинально повлиять на защищенность данных. Существует явное предостережение при использовании правил как инструмента информационной безопасности: ошибка в сложной системе правил чревата непредсказуемыми последствиями для всей базы данных. Также протоколирование и аудит это проверка того, все ли предусмотренные средства управления задействованы и соответствуют уровню защищенности установленным требованиям. Такая мера как протоколирование и аудит состоит в следующем: обнаружение необычных и подозрительных действий пользователей и идентификация лиц, совершивших эти действия; оценка возможных последствий состоявшегося нарушения; оказание помощи; организация пассивной защиты информации от нелегальных действий пользователя: поддержка точности вводимых данных; поддержка документации в активном виде; корректное тестирование пользователей. Кстати рекомендуется при выполнении организации протоколирования фиксировать факты передачи привилегий и подключения к той или иной базе данных. Следующим вопросом в рассмотрении проблемы обеспечения информационной безопасности является анализ средств поддержания высокой готовности. Если речь идет о СУБД, то необходимо в архитектуре аппаратно-программного комплекса иметь средства, обеспечивающие нейтрализацию аппаратных отказов и восстановление после ошибок обслуживающего персонала или прикладных программ.

Сохранение информации базы данных на диски, помещаемые затем в безопасное место, уже длительное время активно применяется для информационных систем. При архивировании сохраняются пространства базы данных и многочисленная сопутствующая информация, необходимая для последующего восстановления. Резервное копирование - это периодически выполняемая процедура получения копии базы данных и ее журнала изменений на носителе, сохраняемом отдельно от системы. Надо помнить, что архив отражает состояние базы данных на время начала архивирования. Резервные копирования логических журналов транзакций сохраняет файлы журналов; интерпретация последних действий позволяет восстановить базу данных до состояния, более позднего, чем момент последнего архивирования. На основании полученной информации из архива и или резервной копии может быть осуществлено восстановление как архивной информации (физическое восстановление), так и более свежие состояние базы данных (логическое восстановление). Можно перечислить возможности службы восстановления на примере СУБД Informix: архивировании в горячем режиме, т.е. без прерывания работы сервера; резервное копирование журналов транзакций; сохранение на удаленных устройствах; сохранение по заранее определенному расписанию без участия оператора; сжатие и шифрование информации. Контрольные точки - это момент синхронизации между состоянием базы данных и журнала транзакция. В это время принудительно выгружаются содержимое буфера оперативной памяти на устройства вторичной памяти. Рассмотренные выше средства сохранения могут обеспечить качественное восстановление с минимальными потерями пользовательской информации, однако работа сервера базы данных будет на некоторое время прервана. Следующий механизм, обеспечивающий высокий уровень отказоустойчивости это технология тиражирования данных. Тиражирование данных - это асинхронный перенос изменений объектов исходной базы данных в другие базы, принадлежащие различным узлам распределенной системы. В конфигурации серверов базы данных выделяют один основной и ряд вторичных. В обычном режиме работы основной сервер выполняет чтение и обновление данных, обеспечивает перенос зафиксированных изменений на вторичные серверы, в случае отказа основного сервера его функции автоматически или можно в вручную переводятся на вторичный сервер в режим работы “чтение + запись”. После восстановления функций основного сервера, ему может быть присвоен статус вторичного сервера, а вторичному делегированы все полномочия основного (при этом обеспечивается непрерывная доступность данных). Процедура тиражирования осуществляется либо в синхронном режиме либо в асинхронном. Благодаря первому осуществляется гарантированность полной согласованности данных, то есть, на вторичном сервере будут зафиксированы все транзакции выполненные на основном. Асинхронный режим улучшает рабочие характеристики системы, не всегда кстати стоит подметить или запомнить обеспечивая полную согласованность (стоит заметить, что далеко не во всех задачах требуется синхронизация фиксации данных; достаточно поддерживать данные лишь в критические моменты времени).