Управление доступом в СУБД MySQL и Oracle Петров А.Л.
Петров Андрей Леонидович /Petrov Andrey Leonidovich - студент, кафедра информационной безопасности систем и технологий, факультет приборостроения, информационных технологий и электроники, Пензенский государственный университет, г. Пенза
Аннотация: в данной статье рассматриваются особенности организации управления доступом в СУБД MySQL и Oracle. Приводятся характеристики СУБД и производится сравнение данных СУБД между собой. Ключевые слова: управление доступом, СУБД, MySQL, Oracle, объект, субъект, индексирование.
Одной из ключевых проблем, решаемых администраторами баз данных, а также преподавателями дисциплин, связанных с обработкой баз данных, является проблема выбора системы управления базами данных, удовлетворяющей условиям информационной безопасности.
Одним из ключевых факторов, влияющих на информационную безопасность информационной системы, является правильное управление доступом, то есть определение и ограничение доступа пользователей, программ и процессов к данным, программам и устройствам вычислительной системы.
При рассмотрении вопроса организации управления доступом вводятся два ключевых понятия: объект доступа и субъект доступа [1].
Объект доступа - единица информационного ресурса автоматизированной системы, доступ к которой регламентируется правилами разграничения доступа.
Субъект доступа - это лицо или процесс, действия которого регламентируются правилами разграничения доступа.
Базы данных СУБД MySQL и Oracle - часто используемые в учебном процессе, а также в организациях. Они являются многопользовательскими, то есть они предназначены для работы большого количества пользователей в сети с одними и теми же данными. Рассматриваемые СУБД являются клиент-серверными. Можно сделать вывод, что MySQL и Oracle - схожие СУБД со схожими алгоритмами работы в них, но, конечно, присутствует и ряд отличий, в том числе и в вопросе организации управления доступом.
Каждая база данных MySQL создается в отдельной папке, причем имя папки совпадает с именем базы данных. В базе данных MySQL могут быть созданы такие объекты как: таблица (table), представление (просмотр) (View), индекс (Index), процедура (procedure) или функция (function), триггер (trigger), событие триггера, тело триггера [2].
Субъектами баз данных MySQL являются конкретные пользователи, имеющие специальные клиентские программы для доступа к ресурсам БД.
Обычно для получения доступа к серверу MySQL необходимо сообщить клиентской программе параметры подсоединения: указать хост, с которым необходимо соединиться, имя пользователя и пароль.
Доступ к БД осуществляется в два этапа:
• верификация соединения;
• верификация запросов.
На первом этапе сервер устанавливает соединение только в том случае, если находит в таблице user запись, в которой имя хоста и имя пользователя совпадают с введенными, и указан правильный пароль.
После установления соединения сервер приступает к выполнению второго этапа. Для каждого поступающего запроса сервер проверяет, имеется ли у вас достаточно привилегий для его выполнения, основываясь при этом на типе операции, которую требуется выполнить. Затем в действие вступают поля привилегий в таблицах привилегий. Информация о привилегиях может находиться в любой из таблиц привилегий. Обработка таблиц привилегий осуществляется с помощью команд GRANT и REVOKE. Для выполнения этих команд пользователь должен обладать соответствующими привилегиями.
Администраторы системы могут создавать и удалять привилегии для четырех доступных уровней привилегий:
• глобальный уровень, привилегии распространяются на все базы данных (таблица mysql.user);
• уровень базы данных, привилегии распространяются только на таблицы и записи указанной базы данных (таблицы mysql.db и mysql.host);
• уровень таблиц, привилегии распространяются только на записи одной таблицы (таблица mysql.tables_priv);
• уровень столбцов, привилегии распространяются только на указанный столбец определенной таблицы (таблица mysql.columns_priv).
Стоит отметить, что в MySQL реализован метод дискреционного контроля доступа (Discretionary Access Control - DAC), подразумевающий управление доступом субъектов к объектам на основе списков управления доступом или матрицы доступа. Владелец объекта сам определяет тех, кто имеет доступ к объекту, а также вид их доступа. Дискреционный контроль доступа управляет доступом субъектов к объектам, базируясь на идентификационной информации субъекта и списка доступа объекта, содержащего набор субъектов (или групп субъектов) и ассоциированных с ними типов доступа (например, чтение, запись).
Метод дискреционного контроля доступа имеет существенный недостаток. Он заключается в том, что он не предоставляет полной гарантии того, что информация не станет доступна субъектам, не имеющим к ней доступа. Это проявляется в том, что субъект имеющий право на чтение информации может передать ее другим субъектам, которые этого права не имеют, без уведомления владельца объекта. Система DAC не устанавливает никаких ограничений на распространение информации после того как субъект ее получил.
Особенностью СУБД Oracle является наличие «схемы» - это коллекции объектов логической структуры базы данных (таблицы, индексы, представления, хранимые процедуры и др.).
Схема ассоциируется с именем пользователя-владельца ее объектов и имеет такое же имя. Пользователь имеет доступ ко всем объектам в своей схеме. Доступ пользователя к объектам «чужой» схемы возможен при наличии соответствующих привилегий.
Объекты схемы в Oracle составляют большее число по сравнению с MySQL, и помимо описанных выше они включают: последовательность (sequence), снимок (snapshot, materialized view), процедуры и функции, объединенные в пакет (package), синоним (synonym) или алиас (alias), связь базы данных (database link), кластер (cluster) [3].
Данные хранятся в таблицах, вместе с которыми могут существовать особые структуры данных - индексы, призванные ускорить запросы к таблицам, индексы используются в обеих рассматриваемых СУБД, но еще одной особенностью СУБД Oracle является различное обращение к таблицам и индексам при выполнении запросов. Существует несколько методов доступа, связанных с индексированными полями.
Субъектами базы данных являются пользователи, однако, получив в распоряжение собственную учетную запись и собственную схему базы данных, только что созданный пользователь не может даже подключиться к базе данных, не говоря уже о создании объектов. Для выполнения любого действия в базе данных пользователю требуются права на выполнение подобных действий. Для этих целей вводятся привилегии и роли.
Для нормальной работы большинству пользователей необходимо предоставить очень большое количество привилегий. Упрощают работу с привилегиями роли - именованные группы привилегий, которые можно предоставлять пользователям с помощью той же команды GRANT, что и отдельные привилегии. В приложениях с большим числом пользователей применение ролей намного уменьшает количество команд GRANT. Можно создать заранее определенный набор ролей, с помощью которых пользователям предоставляются только те привилегии, которые им необходимы.
Наличие ролей означает возможности организации ролевого метода контроля за доступом. Ролевая модель имеет ряд достоинств, среди которых: простота администрирования, иерархия ролей, принцип наименьшей привилегии, разделение обязанностей.
Ролевая модель - универсальна, так как на ее основе можно создать дискреционную модель и модель мандатного контроля доступа [4]. Настройка системы безопасности системы на основе ролевой модели контроля за доступом производится в две стадии:
• настройка политики безопасности системы;
• определение прав доступа для субъектов и объектов в системе.
В дискреционной и мандатной моделях политика безопасности системы уже предопределена.
Продолжая тему методов контроля доступа, стоит отметить, что в СУБД Oracle существует подсистема Oracle Label Security, которая позволяет отдельно реализовать метод мандатного контроля управления доступом (Mandatory Access Control - MAC). Контроль подразумевает отсутствие у пользователя возможности изменения стратегии MAC в отношении объектов. При создании объекта система автоматически присваивает ему атрибуты MAC, и изменить эти атрибуты может только администратор, имеющий соответствующие полномочия. Средства MAC не позволят пользователю случайно или преднамеренно сделать информацию доступной иных пользователей.
С точки зрения обеспечения информационной безопасности данный метод лучше, чем метод дискреционного контроля доступа, так как при правильном построении отношений между уровнями безопасности объектов и субъектов сводятся к минимуму угрозы НСД и нарушения конфиденциальности информации.
В результате анализа вышеизложенного материала, очевидно, что в СУБД Oracle управление доступом обеспечивается на более высоком уровне. Среди достоинств Oracle стоит отметить:
• наличие единой схемы, в которой могут быть вложены несколько объектов доступа;
• наличие большего числа объектов, которые позволяют пользователю эффективнее работать с базами данных;
• удобная работа с индексами, что подразумевает наличие нескольких методов доступа, обеспечивающих наивысшую скорость обработки информации при правильном их использовании.
• возможность реализации мандатного контроля доступа, что обеспечивает большую защищенность информационных ресурсов в базах данных;
• возможность реализации ролевого метода контроля доступа, что обеспечивает удобное администрирование при работе с большим количеством пользователей со схожими привилегиями, а также позволяет администратору настраивать политику безопасности, подходящую в конкретной ситуации.
Литература
1. Субъект, объект и доступ [Электронный ресурс]: Режим доступа: http://best-practice.su/ugrozy-bezopasnosti/10-subekty-obekty-i-dostup (дата обращения: 20.11.2014).
2. Справочное руководство по MySQL. [Электронный ресурс]: Режим доступа: http://www.mysql.ru/docs/mysql-man-4.0-ru (дата обращения: 21.11.2014).
3. Oracle [Электронный ресурс]: Режим доступа: http://interway.narod.ru/context/bd/Oracle/first-oracle.htm_(дата обращения: 22.11.2014).
4. Информационная безопасность систем управления базами данных. [Электронный ресурс]: Режим доступа: http://citforum.ru/database/kbd96/49.shtml#lit (дата обращения: 20.11.2014).