8.6 Особенности защиты баз данных IBM DB2 и Oracle
8.6.1 Особенности защиты информации в СУБД IBM DB2
IBM DB2 - кроссплатформенная СУБД, которая поддерживает реляционную и постреляционную модели данных. Большое внимание в DB2 уделено вопросам безопасности. Следует заметить, что описанная ранее концепция безопасности СБД, реализованная в Microsoft SQL Server, во многих чертах схожа с концепцией IBM для DB2. Однако защита данных в DB2 имеет и некоторые особенности, которые и рассматриваются в данном пункте.
Обеспечение целостности информации
IBM DB2 – многопользовательская система. Управление изолированностью транзакций в DB2 выполняется с помощью механизма блокирования: используются блокировки S и X, а также все рассмотренные ранее блокировки намерения [8.8]. Взаимные блокировки выявляются и устраняются детектором взаимоблокировок, который активизируется с определенной частотой, задаваемой в файле конфигурации БД. В качестве профилактики взаимных блокировок может использоваться установка таймаута блокировки, по истечении которого транзакция, установившая блокировку, отменяется и перезапускается.
Целостность информации на уровне отдельных БД обеспечивается с помощью ОЦ и триггеров. ОЦ в DB2 являются типовыми (см. табл. 8.6). Триггеры – имеют ряд особенностей классификации и реализации в сравнении с SQL Server.
Триггеры DB2 могут запускаться до и после активизирующего оператора (но не вместо него). Также в DB2 существует тип классификации триггеров, отсутствующий в SQL Server, - область действия. По этому признаку триггеры классифицируются на строковые и операторные. Строковый триггервыполняется для каждой строки, модифицируемой активизирующим оператором. Операторный триггер запускается однократно в ответ на триггерное событие; при этом не принимается во внимание, сколько строк триггерной таблицы обработано и какие это строки. Поведение операторных триггеров DB2 напоминает поведение любого триггера SQL Server.
Для контроля изменений в связанных таблицах операторные триггеры DB2 используют псевдотаблицы, а строковые – псевдозаписи: каждая псевдозапись содержит старые или обновленные значения полей текущей обрабатываемой строки связанной таблицы. Имена псевдотаблиц и псевдозаписей задаются разработчиком в теле SQL-оператора CREATETRIGGER, синтаксис которого в DB2 достаточно сильно отличается от синтаксиса SQL Server. За присваивание имен псевдозаписям и псевдотаблицам отвечает секция REFERENCING данного оператора.
Чтобы изменить код триггера в БД DB2, необходимо удалить триггер и заново создать его с помощью оператора CREATETRIGGER.
Особенности системы управления доступом
В DB2 используется только внешняя идентификация и аутентификация пользователей (доверительное соединение). При добавлении нового пользователя предлагается не задать новое имя, а выбрать одного из пользователей операционной системы. Зарегистрированный пользователь только тогда получает доступ к объектам БД, когда на уровне этой БД ему назначены определенные привилегии доступа.
Для задания одинаковых наборов разрешений множеству пользователей используются группы. Создание групп выполняется исключительно внешними средствами, сама же СУБД не предоставляет никаких механизмов управления группами, кроме задания разрешений доступа. Некоторым группам даются административные полномочия (их можно сравнить с фиксированными серверными ролями в SQL Server). При этом четко выделяются два уровня доступа: СУБД и БД. На уровне СУБД действуют полномочия:
· SYSADM – полномочия системного администратора;
· SYSCTRL – полномочие на создание, изменение конфигурации и удаление баз данных и табличных пространств;
· SYSMAINT– полномочие на сопровождение БД, в том числе на резервное копирование и восстановление.
Полномочие SYSCTRL включает в себя SYSMAINT, а SYSADM – SYSCTRL.
На уровне БД может быть определено полномочие DBADM, равносильное правам владельца БД.
Для защиты секретной информации в DB2 применяется шифрование данных в таблицах. Используемый в DB2 диалект SQL поддерживает симметричное шифрование выбранных столбцов или ячеек таблиц по алгоритму RC2. Ключ генерируется на основе парольной фразы.
Механизмы обеспечения доступности
Резервное копирование баз данных DB2 может выполняться в трех режимах.
1. Полное резервное копирование, которое формирует полную копию БД и данные, необходимые для восстановления в случае сбоя.
2. Разностное (инкрементное) резервное копирование. В этом режиме резервированию подвергаются все данные, измененные с момента последнего полного резервного копирования. Другое название данного режима – накопительное резервное копирование.
3. Инкрементное-дельта резервное копирование. В этом режиме архивируются изменения, выполненные с момента создания последней полной или разностной копии данных.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.