Вход в личный кабинет:

Забыли пароль? | Регистрация

Адреса компании:

Санкт-Петербург

196158, Санкт-Петербург,
Пулковское шоссе, д. 30,
корп. 4, Лит. А, офис 203

Тел: +7 812 414 95 41

Москва

129085, г. Москва, проезд Ольминского, д. 3а, стр. 3, офис 706

Тел: +7 495 616 00 53

Блог

26.08.2015

Progress OpenEdge: промышленные средства репликации данных в Oracle и MS-SQL

Progress OpenEdge Pro2 Replication

Читать далее →




Десять причин перехода на новые версии OpenEdge (Progress)


OpenEdge Auditing — забытая история

Вернуться к списку постов

Влияние на производительность

Механизм OpenEdge Auditing выполняет чрезвычайно ресурсоемкий процесс, так как новая запись будет создаваться в таблице _aud-data каждый раз, когда будет происходить какое-либо событие. К тому же, в таблицу _aud-data-value всегда пишутся новые записи, когда происходит изменение контролируемых полей таблиц.

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

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

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

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

Влияние на утилиты OpenEdge

Для того чтобы гарантировать целостность данных аудита, необходимо, чтобы доступ к ним и к полисам имели только авторизованные пользователи. В связи с этим, при включении механизма OpenEdge Auditing ограничивается свободный доступ к определенным утилитам OpenEdge. Это дополнение обеспечивает три первичных аспекта безопасности: аутентификация, авторизация и аудит. Такой уровень безопасности требуется утилитам, которые в силу своих особенностей могут изменить что-либо в базе данных. Доступ к таким утилитам будет разрешен только тем пользователям, которые имеют привилегии Audit Administrator или Audit Data Archiver. Существует два способа идентификации таких пользователей, это по таблице _user и по логину операционной системы (User ID).В зависимости от способа идентификации, методы идентификации пользователя отличаются.

Идентификация пользователя по таблице _user

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

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

proutil db-name -C disableauditing -userid audadm -password 123

Пользователь audadm у нас имеет привилегию Audit Administrator, поэтому утилита позволила ему выключить OpenEdge Auditing. Здесь его пароль мы указывали в открытом виде. Если бы мы не указали параметр –password, то утилита запросила бы его у нас, как показано ниже:

proutil sports -C disableauditing -userid audadm
OpenEdge Release 10.2A01 as of Fri Mar  6 21:03:26 EST 2009
password:

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

genpassword -password 123
OpenEdge Release 10.2B07 as of Fri Sep  7 02:14:50 EDT 2012
61607c

Зашифрованный пароль здесь выделен жирным шрифтом. Чтобы в дальнейшем им воспользоваться следующим образом:

proutil sports -C disableauditing -userid audadm -password oech1::61607c

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

Компонент пароля

Описание

oec

Сокращение, идентифицирующее алгоритм шифрования OpenEdge

h1

Шестнадцатерично-двоичное закодированное значение, идентифицирующее размер ключа алгоритма кодирования как 1

::

Разделитель

Password

Зашифрованный пароль. Кодирование выполняется с алгоритмом, указанным в префиксе

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

Если таблицы _user в базе данных не заполнена, то пользователь будет идентифицироваться утилитами по логину операционной системы. При этом, в самой базе данных, такой пользователь должен иметь, по крайней мере, привилегию Audit Administrator. При такой схеме, пользователю не нужно будет указывать параметры –userid и –password, если он работает в своей собственной сессии. Если же пользователь хотел бы выполнить операцию, находясь в сессии другого пользователя, то он должен указать в параметре –userid свой логин, а в параметре –password, указать MAC ключ базы данных, который может так же быть, как зашифрован, так и в чистом виде.

Приведем пример. Допустим, пользователь valeriy имеет в базе данных привилегию Audit Administrator. Таблица _user в базе данных пуста, поэтому идентификация пользователя будет осуществляться по логину операционной системы. Пользователь входит в операционную систему под своим логином, и выполняет следующую команду:

[valeriy] proutil sports -C disableauditing

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

[root]#proutil sports -C disableauditing
OpenEdge Release 10.2B07 as of Fri Sep  7 02:14:50 EDT 2012
The user is not authorized to perform disableauditing operations

Операция была отвергнута. Если же к команде добавить параметры –userid, указав логин valeriy и MAC ключ базы данных в качестве запрошенного пароля, то деактивация OpenEdge Auditing будет выполнена успешно:

[root]#  proutil sports -C disableauditing -userid valeriy
OpenEdge Release 10.2B07 as of Fri Sep  7 02:14:50 EDT 2012
password:
Auditing was not fully disabled because auditing data tables are not empty. (13647)
Auditing has been deactivated, no additional auditing records will be recorded. (13649)

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

Дополнительная защита OpenEdge Auditing

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

Имя таблицы

Тип таблицы

_aud-audit-data

Данные

_aud-audit-data-value

Данные

_client-session

Данные

_aud-event

Полисы

_aud-event-policy

Полисы

_aud-audit-policy

Полисы

_aud-file-policy

Полисы

_aud-field-policy

Полисы

Как уже говорилось ранее, у утилиты PROUTIL в связи с включением OpenEdge Auditing появляются дополнительные два параметра, это –userid и –password. Классификаторы утилиты PROUTIL, на поведение которых влияет OpenEdge Auditing, приведены в следующей таблице, в которой так же описывается, как именно это влияние выражается:

Операция

Классификатор

PROUTIL

Закрепленный

защищенный

объект

Необходимые привилегии

Ограничения

Bulk load

Bulkload

Таблицы

Доступ запрещен всем пользователям

Binary load

load

Таблицы

Доступ запрещен всем пользователям

Binary dump

dump dumpspecified

Таблицы

Доступ запрещен всем пользователям

Index fix

(delete record)

idxfix

Таблицы

Audit Archiver

Доступ запрещен всем, кроме имеющих привилегию

Truncate area

truncate area

Области

Audit Archiver

Доступ запрещен всем, кроме имеющих привилегию

Archive audit data

auditarchive

Таблицы

Audit Archiver

Доступ запрещен всем, кроме имеющих привилегию

Load audit data

auditload

Таблицы

Audit Archiver

Доступ запрещен всем, кроме имеющих привилегию

Disable auditing

disableauditing

Audit Administrator

Доступ запрещен всем, кроме имеющих привилегию


Я рад что у вас хватило терпения дочитать всё это до конца. В следующей части, надеюсь, что уже скоро, механизм OpenEdge Auditing будет описан с точки зрения разработчика (программиста), а именно как создаются специфические политики аудита для слежения за конкретными объектами базы, и как программировать собственные отчеты по аудиту. Оставайтесь с нами и следите за новостями…

Валерий Башкатов


Добавить свой комментарий

Ваше имя*:
Ваш E-mail*:
Ваш комментарий*:

Компьютерные системы для бизнеса
© 2010 - 2019 Все права на материалы, находящиеся на этом сайте, охраняются в соответствии с законодательством РФ, в том числе, об авторском праве и смежных правах. При любом использовании материалов сайта ссылка на источник обязательна.