Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗИПЕКТ 28.09.11 Лекция 2.docx
Скачиваний:
1
Добавлен:
15.11.2018
Размер:
61.83 Кб
Скачать

Логические подсистемы обеспечения безопасности

  • Подсистема управления доступом.

  • Подсистема регистрации и учёта.

  • Криптографическая подсистема.

  • Подсистема контроля целостности.

Основные средства обеспечения конфиденциальности субд

Внутренние механизмы самой СУБД:

  • Использование представлений. Полагаться особо нельзя

  • Использование триггеров. Достаточно эффективный

  • Встроенные механизмы шифрования на уровне столбцов таблиц.

Внешние механизмы:

  • Контроль доступа со строгой аутентификацией пользователей.

  • Шифрование трафика между сервером и клиентами СУБД.

Представление

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

Достоинства представления:

  • позволяет ограничить данные, видимые пользователю;

  • эффективно контролирует, какие данные пользователь имеет право модифицировать;

  • СУБД гарантирует актуальность представления. СУБД написали год назад, задали представление, после чего каждый день запрашивая данное представление, получаем результат, актуальный именно на тот момент, когда мы его запрашиваем

Например, у нас есть одна большая таблица, с которой каждому пользователю необходимо работать по-разному (в т.ч., видеть только «свои» поля таблицы). Задаём представление, которое решает эту задачу

Пример таблицы, для которой необходимо представление

Prep

NP

Name

Position

Seniority

ChartNum

Salary

1

Иванов

Доцент

10

403

7000

2

Петров

Ст. преп.

5

556

5000

3

Сидоров

Профессор

20

212

10000

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

Примеры запросов на создание представления

CREATE VIEW Prep_View AS SELECT NP, Name, Position, Seniority, ChartNum FROM Prep Для работника кадровой службы

CREATE VIEW Prep_Small_Salary AS SELECT NP, Name, Position, Seniority, ChartNum, Salary FROM Prep WHERE Salary<20000 Допустим, есть главный бухгалтер, которому доступно всё, и есть неглавный, которому не обязательно знать людей с большой зарплатой

Триггер

Триггер – это совокупность предложений языка SQL или некоторого иного процедурного языка, автоматически запускаемая СУБД при возникновении определённых событий в системе.

Триггеры выполняются системой автоматически до или после возникновения предопределённых событий. Например, выполнение операторов INCERT, UPDATE или DELETE.

Основные способы использования триггеров для повышения защищённости системы

  1. Дополнительный контроль допустимости действий пользователя.

  2. Введение специализированного аудита действий пользователя.

Примеры триггера уровня таблицы (СУБД Oracle)

CREATE OR REPLACE TRIGGER DistrictUpdatedTrigger AFTER UPDATE ON district BEGIN INSERT INTO info VALUES (‘table “district” has changed’); END

При использовании триггеров мы жертвуем скоростью (скорость запросов однозначно страдает), однако при повышении безопасности мы всегда жертвуем: а) удобством работы (всегда), б) скоростью.

Примеры триггера уровня строки таблицы (СУБД Oracle)

CREATE OR REPLACE TRIGGER DistrictUpdaterTrigger AFTER UPDATE ON district FOR EACH ROW BEGIN INSERT INTO info VALUES (‘one string in table “district” has changed’); END