Особенности защиты баз данных IBM DB2 и Oracle, страница 2

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

Резервирование серверов СУБД DB2 выполняется с применением механизмов кластеризации, встроенных в ОС.

8.6.2. Особенности защиты информации в СУБД Oracle

Управление транзакциями

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

Для разрешения конфликтов, связанных с изменениями данных, Oracle накладывает монопольную блокировку на измененные строки. Коллективные блокировки в Oracle не используются, но для разрешения возможных конфликтных ситуаций при выполнении транзакциями операций чтения Oracle производит дополнительные проверки. Каждая транзакция в Oracle имеет текущий системный номер (System Current Number, SCN). Чем позже началась транзакция, тем больше ее SCN. Если транзакция модифицирует страницу данных, СУБД сохраняет в этой странице копию ее SCN. Если транзакция считывает страницу данных, то:

·  она делает это беспрепятственно, если ее SCN больше или равен SCN страницы;

·  если SCN транзакции меньше SCN страницы данных (т. е. некоторая транзакция, начавшаяся позже данной, изменила или изменяет эту страницу), то транзакция считывает из сегмента отката вариант той же страницы с SCN меньшим, чем SCN транзакции

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

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

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

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

Аутентификация пользователей средствами операционной системы Windows NT в Oracle во многом аналогична установке доверительного соединения в SQL Server. Дополнительно Oracle поддерживает доверительное соединение пользователей UNIX и других ОС.

Управление доступом на уровне сервера в Oracle может осуществляться путем блокирования (lock) и разблокирования (unlock) учетных сведений пользователей. В случае блокирования учетных сведений пользователь не имеет возможности доступа к серверу и базам данных до разблокировки. Блокирование учетных сведений пользователей может выполняться в следующих случаях:

·  при временном отсутствии пользователя;

·  при увольнении пользователя и необходимости сохранить применяемые им объекты;

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

·  при истечении срока действия пароля пользователя;

·  при нескольких последовательных попытках неудачного соединения.

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

Системные привилегии схожи с привилегиями доступа на уровне сервера СУБД в SQL Server. Они дают пользователю возможность выполнять некоторые системные операции. В их числе:

·  ALTERDATABASE (изменить базу данных) – разрешает изменять физическую структуру и доступность БД;

·  CREATESESSION (установить сеанс) – разрешает устанавливать соединение с сервером баз данных и сеанс связи с БД;