Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #52, МАРТ 2005 г.

Тюнинг для Оракула

Андрей Сидоренко

Спецвыпуск: Хакер, номер #052, стр. 052-046-3


Однако такой вид представления информации о состоянии БД хоть и нагляден, но не всегда обеспечивает желаемую гибкость. Он достаточно ресурсоемкий и не очень-то подходит для одновременного контроля нескольких систем: слишком много избыточной информации демонстрируется на дисплее. Намного проще отслеживать процессы, происходящие на сервере, с использованием логов и просто маленьких командных утилит.

Один из лог-файлов, интересных для тебя, расположен в каталоге $ORACLE_HOME/admin/$ORACLE_SID/bdump, где $ORACLE_HOME и $ORACLE_SID. Это переменные окружения, указывающие на каталог установки Oracle и уникальное имя (SID) базы данных. Лог, в котором отмечаются действия при старте, работе и остановке, имеет имя alert_$ORACLE_SID.log. Для контроля за базой данных достаточно запустить простой скрипт, который будет выводить на консоль последние 10-20 строчек этого лога, искать в них сообщения об ошибках, чтобы те всегда были "под рукой".

#!/bin/sh

while [ 1 == 1 ]; do

clear

tail -n 20

$ORACLE_HOME/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log | grep

-i error

sleep 10

done

Охраняем границы. Безопасность

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

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

Сведения о доверенных хостах содержатся в файле $ORACLE_HOME/network/admin/sqlnet.ora - в простом текстовом конфигурационном файле. Для примера ограничим доступ к базе данных со всех компьютеров, кроме того, на котором установлена база данных:

TCP.VALIDNODE_CHECKING = YES

TCP.INVITED_NODES= (localhost, 127.0.0.1)

Параметр TCP.VALIDNODE_CHECKING разрешает проверки на разрешение/запрещение коннекта к базе, а TCP.INVITED_NODES указывает на список адресов или доменов, которым доступны операции с Oracle. Вместо такой политики ограничения доступа можно применить другую, а именно указать список адресов, которым запрещено работать с базой данных:

TCP.VALIDNODE_CHECKING = YES

TCP.EXCLUDED_NODES= (some.evil.host.com, onemore.bad.com)

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

Назад на стр. 052-046-2  Содержание  Вперед на стр. 052-046-4