Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс лекций СБД.doc
Скачиваний:
23
Добавлен:
13.11.2019
Размер:
1.94 Mб
Скачать
      1. Шифрование данных

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

Если ключ известен, то процедура расшифровки может быть выполнена достаточно просто. Вопрос заключается в том, насколько сложно нелегальному пользователю определить ключ шифрования, обладая открытым и зашифрованным текстом. В идеале схема шифрования должна быть такой, чтобы усилия, затраченные на ее расшифровку, во много раз превышали полученные при этом выгоды. (Фактически это замечание применимо ко всем аспектам проблемы обеспечения безопасности: т.е. стоимость осуществления попыток взлома системы безопасности должна быть значительно выше потенциальной выгоды от этого.) Предельной целью поиска таких схем следует считать схему, для которой сам ее разработчик, обладая открытым и зашифрованным вариантами одной и той же части текста, не в состоянии определить ключ и, следовательно, расшифровать другую часть зашифрованного текста.

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

      1. Производительность баз данных

Как правило, в многопользовательских системах администратору разрешается задавать параметры настройки системы – какая часть базы данных может преобразовываться в оперативной памяти в конкретный момент времени, сколько исходных и преобразованных данных должно быть буферизовано, сколько процессов может одновременно инициировать отдельный пользователь, сколько блокировок может получить отдельная транзакция и т.д. Администратор базы данных должен контролировать возможные блокировки объектов базы данных, так как существует опасность возникновения взаимной блокировки (deadlock). Пусть, например, две транзакции Т1 и Т2 используют объекты О1 и O2 базы данных. Может возникнуть ситуация, когда обеим транзакциям требуются блокировки обоих объектов. Рассмотрим такую последовательность событий:

  1. Т1 блокирует объект О1.

  2. Т2 блокирует объект О2.

  3. Т1 запрашивает блокировку объекта О2. Ей необходимо ожидать.

  4. Т2 запрашивает блокировку объекта О1. Ей также приходится ожидать.

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

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

Важный аспект производительности базы данных – ее доступность. Администратор должен следить за тем, чтобы стандартные "внутренние" процедуры, такие как создание архивных копий базы данных и проведение модернизаций, как можно меньше отражались на использовании базы данных.

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