27_SH43-0144-00 (1038594), страница 61
Текст из файла (страница 61)
Это позволит выявить устаревшие имена авторизации.Примечание: Если вы поддерживаете удаленных клиентов базы данных, можетоказаться, что имя авторизации определено только на удаленномклиенте и отсутствует на сервере вашей базы данных.Получение всех имен с полномочиями DBADMСледующий оператор получает все имена авторизации, которым былинепосредственно предоставлены полномочия DBADM:SELECT DISTINCT GRANTEE FROM SYSCAT.DBAUTHWHERE DBADMAUTH = 'Y'276Руководство администратора: РеализацияПолучение имен с правом доступа к таблицеСледующий оператор получает все имена авторизации, которым былинепосредственно предоставлены права доступа к таблице EMPLOYEE соспецификатором JAMES:SELECT DISTINCT GRANTEETYPE, GRANTEE FROM SYSCAT.TABAUTHWHERE TABNAME = 'EMPLOYEE'AND TABSCHEMA = 'JAMES'UNIONSELECT DISTINCT GRANTEETYPE, GRANTEE FROM SYSCAT.COLAUTHWHERE TABNAME = 'EMPLOYEE'AND TABSCHEMA = 'JAMES'Чтобы узнать, кто может изменять таблицу EMPLOYEE с квалификаторомJAMES, выполните следующий оператор:SELECT DISTINCT GRANTEETYPE, GRANTEE FROM SYSCAT.TABAUTHWHERE TABNAME = 'EMPLOYEE' AND TABSCHEMA = 'JAMES' AND(CONTROLAUTH = 'Y' ORUPDATEAUTH = 'Y' OR UPDATEAUTH= 'G')UNIONSELECT DISTINCT GRANTEETYPE, GRANTEE FROM SYSCAT.DBAUTHWHERE DBADMAUTH = 'Y'UNIONSELECT DISTINCT GRANTEETYPE, GRANTEE FROM SYSCAT.COLAUTHWHERE TABNAME = 'EMPLOYEE' AND TABSCHEMA = 'JAMES' ANDPRIVTYPE = 'U'Этот оператор даст все имена авторизации с полномочиями DBADM, а такжеимена, которым были непосредственно предоставлены привилегии CONTROL иUPDATE.
Однако он не даст имена авторизации тех пользователей, которыеобладают только полномочиями SYSADM.Не забывайте, что некоторые имена авторизации могут быть группами, а неотдельными пользователями.Получение всех привилегий, предоставленных пользователямПосылая запросы на производные таблицы системного каталога, пользовательможет получать список своих привилегий и список привилегий, которые онпередал другим пользователям. Например, следующий оператор получит списокпривилегий базы данных, непосредственно предоставленных отдельному имениавторизации:SELECT * FROM SYSCAT.DBAUTHWHERE GRANTEE = USER AND GRANTEETYPE = 'U'Следующий оператор получит список привилегий таблицы, непосредственнопредоставленных заданным пользователем:SELECT * FROM SYSCAT.TABAUTHWHERE GRANTOR = USERГлава 5.
Управление доступом к базам данных277Следующий оператор получит список привилегий отдельного столбца,непосредственно предоставленных заданным пользователем:SELECT * FROM SYSCAT.COLAUTHWHERE GRANTOR = USERКлючевое слово USER в этих операторах всегда равно значению имениавторизации пользователя. USER является специальным регистром только длячтения. Дополнительную информацию о специальных регистрах смотрите всправочнике SQL Reference.Защита производных таблиц системного каталогаПри создании базы данных привилегия SELECT для производных таблицсистемного каталога предоставляется группе PUBLIC.
(О других привилегиях,автоматически предоставляемых группе PUBLIC, смотрите в разделе“Привилегии базы данных” на стр. 255.) В большинстве случаев это не угрожаетбезопасности. Однако для особо конфиденциальных данных это можетоказаться неприемлемо, поскольку в этих таблицах описаны все объекты базыданных.
В таком случае можно аннулировать привилегию SELECT у группыPUBLIC и затем предоставить привилегию SELECT нужным пользователям.Предоставление и отзыв привилегии SELECT для производных таблицсистемного каталога делается также, как для любой производной таблицы, нотребует полномочий SYSADM или DBADM.Как минимум, стоит ограничить доступ к следующим производным таблицамкаталога:vvvvvvSYSCAT.DBAUTHSYSCAT.TABAUTHSYSCAT.PACKAGEAUTHSYSCAT.INDEXAUTHSYSCAT.COLAUTHSYSCAT.PASSTHRUAUTHv SYSCAT.SCHEMAAUTHТогда информация о привилегиях пользователей, которая может навестивзломщика на подходящее имя авторизации, перестанет быть доступной длявсех, кто обращается к базе данных.Нужно также исследовать столбцы, для которых собирается статистика(смотрите раздел “Статистика каталога” в руководстве Руководствоадминистратора: Производительность).
В статистике, записываемой в системныйкаталог, может содержаться конфиденциальная информация о вашей среде. Вэтом случае можно отозвать привилегию SELECT у группы PUBLIC дляпроизводных таблиц каталога SYSCAT.COLUMNS и SYSCAT.COLDIST.278Руководство администратора: РеализацияЕсли вы хотите ограничить доступ к производным таблицам системногокаталога, можно определить производные таблицы, которые позволят каждомуимени авторизации получать информацию о своих собственных привилегиях.Например, следующая производная таблица MYSELECTS включает владельца иимена всех таблиц, для которых имени авторизации пользователя былапредоставлена привилегия SELECT:CREATE VIEW MYSELECTS ASSELECT TABSCHEMA, TABNAME FROM SYSCAT.TABAUTHWHERE GRANTEETYPE = 'U'AND GRANTEE = USERAND SELECTAUTH = 'Y'Ключевое слово USER в этом операторе всегда равно значению имениавторизации.Следующий оператор сделает производную таблицу доступной каждому имениавторизации:GRANT SELECT ON TABLE MYSELECTS TO PUBLICИ, наконец, не забудьте отозвать привилегию SELECT для следующей базовойтаблицы:REVOKE SELECT ON TABLE SYSCAT.TABAUTH FROM PUBLICГлава 5.
Управление доступом к базам данных279280Руководство администратора: РеализацияГлава 6. Аудит действий DB2Для управления известным или ожидаемым доступом к данным можноиспользовать аутентификацию, полномочия и привилегии, но этого можетоказаться недостаточно, чтобы предотвратить несанкционированный илинезапланированный доступ к данным. Для обнаружения такого рода доступа кданным в DB2 предлагается утилита аудита.
Мониторинг и последующийанализ нежелательного доступа к данным позволяет улучшить управлениедоступом и полностью исключить злонамеренные и случайныенеавторизованные обращения к данным. Мониторинг доступа программ ииндивидуального доступа пользователей к данным, включая действия поуправлению системой, обеспечивает возможность записи хронологии действий всистемах баз данных.Утилита аудита DB2 генерирует и позволяет вам поддерживать файл аудита дляряда заранее определенных событий базы данных. Записи, генерируемые этойутилитой, хранятся в файле журнала аудита.
Анализ этих записей позволяетвыявить типичные случаи неправильного использования системы. Выявив такиеслучаи, можно предпринять действия по уменьшению или исключениюневерного применения системы.Утилита аудита действует на уровне экземпляра и записывает все действияуровня экземпляра и все действия уровня баз данных.При работе в среде многораздельной базы данных многие события, которыеможно отслеживать, происходят в разделе, с которым соединен пользователь(узел координатора), или же на узле каталога (если они не находятся в одномразделе).
В связи с этим записи аудита могут генерироваться в несколькихразделах. В каждую запись аудита входят идентификаторы узла координатора иисходного узла.Журнал аудита (db2audit.log) и файл конфигурации аудита (db2audit.cfg)расположены в подкаталоге security экземпляра. При создании экземпляраоперационная система устанавливает для этих файлов разрешение начтение/запись (где это возможно). По умолчанию разрешение чтение/записьустанавливается только для экземпляра владельца. Изменять эти разрешения нерекомендуется.Пользователи утилиты аудита (db2audit) должны обладать полномочиямиSYSADM.Утилиту аудита надо останавливать и запускать явно.
При запуске утилитааудита использует существующую информацию о своей конфигурации.© Copyright IBM Corp. 1993, 2000281Поскольку утилита аудита не зависит от сервера DB2, она остается активнойдаже при завершении работы экземпляра. Фактически, когда экземпляростановлен, записи аудита могут генерироваться и помещаться в файл журнала.Управляя действиями утилиты аудита, ее авторизованные пользователи могут:v Запустить запись событий аудита на экземпляре DB2.v Остановить запись событий аудита на экземпляре DB2.v Конфигурировать поведение утилиты аудита, в том числе выбирать категориизаписываемых утилитой событий.v Запросить описание текущей конфигурации аудита.v Принудительно записать любые отложенные записи аудита из экземпляра вжурнал аудита.v Извлечь записи аудита, сформатировав и скопировав их из журнала аудита вплоский файл или в файлы ASCII с ограничителями.
Есть две причины дляизвлечения записей журнала: подготовка к анализу или подготовка ксокращению.v Удалить часть записей из текущего журнала аудита.Можно генерировать записи аудита различных категорий. Обратите вниманиена то, что в описании категорий событий, доступных для аудита (смотритениже), за именем каждой категории следует одиночное ключевое слово,используемое для идентификации типа категории. Для аудита доступныследующие категории событий:v Аудит (AUDIT). Генерирует записи при изменении параметров аудита или приобращении к журналу аудита.v Проверка авторизации (CHECKING). Генерирует записи попыток доступа илиуправления объектами или функциями DB2 при проверке авторизации.v Поддержка объектов (OBJMAINT). Генерирует записи при создании илиотбрасывании объектов данных.v Поддержка защиты (SECMAINT).
Генерирует записи при предоставлении илиотзыве привилегий для объектов и баз данных или полномочий DBADM.Кроме того, записи генерируются при изменении параметров конфигурациизащиты менеджера баз данных SYSADM_GROUP, SYSCTRL_GROUP иSYSMAINT_GROUP.v Управление системой (SYSADMIN). Генерирует записи при выполненииопераций, требующих полномочий SYSADM, SYSMAINT ил SYSCTRL.v Проверка пользователя (VALIDATE). Генерирует записи при аутентификациипользователей или при восстановлении информации защиты системы.v Контекст операции (CONTEXT).
Генерирует записи для вывода контекстаоперации при выполнении операций базы данных. Эта категория позволяетлучше интерпретировать файл журнала аудита. При использовании полякоррелятора событий журнала группу событий можно связать с одной282Руководство администратора: Реализацияоперацией базы данных. Например, при анализе результатов аудитанеобходимый контекст может обеспечить оператор SQL для динамическогоSQL, идентификатор пакета для статического SQL или индикатор типа такойвыполняемой операции, как CONNECT.Примечание: Оператор SQL, обеспечивающий контекст операции, можетоказаться очень длинным, но он будет полностью показан взаписи CONTEXT. В результате запись CONTEXT можетоказаться очень большой.v Утилиту аудита можно использовать для успешных событий, для неудачныхсобытий, либо для тех и других.Для любой операции по базе данных может быть сгенерировано несколькозаписей.
Фактическое число записей, генерируемых и помещаемых в журналаудита, определяется числом категорий событий, которые нужно записать,заданных в конфигурации утилиты аудита. Это число зависит также от того,используется эта утилита для успешных успешных событий, для неудачныхсобытий или для тех и других. По этой причине важно правильно отбиратьсобытия для аудита.Поведение утилиты аудитаУтилита аудита записывает возможные для аудита события, включая события,влияющие на экземпляры баз данных. По этой причине утилита аудита являетсянезависимой частью DB2 и остается активной, даже если останавливаетсяэкземпляр DB2. В такой ситуации, если снова запустить остановленныйэкземпляр, утилита аудита продолжит аудит событий базы данных на этомэкземпляре.Время записи результатов обработки утилиты в журнал аудита можетсущественно влиять на производительность баз данных в экземпляре.