ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 5427
Скачиваний: 10
96
Эти
типы
доступа
обычно
обеспечиваются
назначением
для
предоставления
данных
нескольких
паролей
.
Например
,
предположим
,
что
у
нас
есть
таблица
4.1 «
Работник
»
и
мы
хотим
,
чтобы
пользователь
Васильев
имел
доступ
только
к
атрибутам
№
РАБОТНИКА
и
ФАМИЛИЯ
,
причем
только
для
чтения
.
Этого
можно
добиться
,
создав
представление
дан
-
ных
,
содержащее
только
атрибуты
№
РАБОТНИКА
и
ФАМИ
-
ЛИЯ
.
Для
представления
данных
№
РАБОТНИКА
_
ФАМИЛИЯ
можно
создать
пароль
,
дающий
право
доступа
только
для
чтения
(
команда
SQL):
GRANT READ ACCESS ON
№
РАБОТНИКА
_
ФАМИЛИЯ
TO
Васильев
Общая
форма
такого
предоставления
права
доступа
в
SQL
с
командой
GRANT
выглядит
следующим
образом
:
GRANT <
список
полномочий
> ON <
имя
представления
данных
или
таблицы
>
TO <
список
пользователей
>
Список
полномочий
позволяет
перечислить
несколько
полномочий
(
чтения
,
удаления
и
/
или
обновления
)
в
одной
команде
.
Представления
данных
и
защита
в
SQL .
Общий
син
-
таксис
команды
SQL,
создающей
представление
данных
,
имеет
следующий
вид
:
CREATE VIEW
имя
_
представления
_
данных
(
список
нужных
атрибутов
,
если
не
совпадает
с
базовой
таблицей
) AS
за
-
прос
.
Рассмотрим
конкретный
пример
,
в
котором
используется
таблица
4.1.
Предположим
,
что
мы
хотим
ограничить
доступ
к
этой
таблице
пользователю
1
U
,
позволяя
ему
просмат
-
ривать
только
информацию
о
работнике
,
номер
которого
1235.
GREA
Т
E VIEW
№
Работника
1235
А
S SELECT
№
Работни
-
ка
,
Фамилия
,
Недельная
зарплата
,
Специальность
FROM
Работник
WHERE
№
Работника
= 1235
97
Предположим
,
что
1
U
позволено
просматривать
всю
ин
-
формацию
таблицы
«
Работник
»,
кроме
информации
о
зар
-
плате
.
Соответствующее
представление
данных
выглядит
так
:
CREATE VIEW
Работник
1
AS SELECT
№
Работника
,
Фамилия
,
Специальность
FROM
Работник
На
некоторых
пользователей
может
быть
возложена
от
-
ветственность
за
поддержание
элементов
данных
,
следова
-
тельно
,
им
разрешен
доступ
к
системным
таблицам
,
за
ко
-
торые
они
отвечают
.
Поскольку
системные
таблицы
сами
представляют
собой
реляционные
таблицы
,
то
для
них
тоже
можно
создавать
представления
данных
.
Приведем
пример
:
CREATE VIEW
МОИ
_
ТАБЛИЦЫ
AS SELECT *
FROM SYSTABLES
WHERE CREATOR = USER
USER –
ключевое
слово
,
требующее
присвоения
значения
во
время
выполнения
.
Таким
образом
,
если
1
U
вводит
ко
-
манду
SELECT *
FROM
МОИ
_TA
БЛИЦЫ
система
выполняет
запрос
,
как
если
бы
было
написано
SELECT *
FROM
МОИ
_TA
БЛИЦЫ
WHERE CREATOR =
1
U
Запросы
такого
рода
называются
контекстно
-
зависимыми
,
поскольку
выдаваемый
ими
результат
зависит
от
контекста
(
1
U
).
Иногда
пользователю
позволен
доступ
к
статическим
данным
,
вычисленным
по
базовой
таблице
,
но
запрещен
доступ
к
отдельным
значениям
.
Рассмотрим
пример
,
в
кото
-
ром
используется
таблица
«
Проект
»,
имеющая
следующую
схему
:
ПРОЕКТ
(
№
,
ФАМИЛИЯ
,
АДРЕС
,
ПОЧТОВАЯ
ОПЛАТА
,
ОТДЕЛ
).
Например
,
пользователю
может
быть
,
разрешено
смотреть
только
среднюю
почасовую
оплату
из
таблицы
.
98
Такое
ограничение
поддерживается
следующим
представле
-
нием
данных
:
CREATE VIEW AVG (
№
,
ФАМИЛИЯ
,
СР
._
ОПЛ
., O
ТДЕЛ
)
AS SELECT
№
,
ФАМИЛИЯ
,AVG (
ПОЧ
._
ОПЛ
),
ОТДЕЛ
FROM
ПРОЕКТ
GROUP BY O
ТДЕЛ
Обратите
внимание
,
что
в
представлении
данных
создает
-
ся
атрибут
(
СР
._
ОПЛ
),
которого
не
существовало
в
базовой
таблице
«
Проект
».
Его
значения
вычисляются
командой
SELECT -
берется
среднее
значение
атрибута
ПОЧТОВАЯ
ОПЛАТА
для
каждого
отдела
.
Хотя
применение
представлений
данных
может
быть
эф
-
фективным
средством
защиты
,
система
должна
уметь
при
-
спосабливаться
к
изменяющимся
со
временем
требованиям
.
В
SQL
такую
возможность
дают
команды
GRANT
и
REVOKE.
Приведем
примеры
:
GRANT SELECT ON TABLE C TO
Иванов
,
Петров
Команда
означает
,
что
Иванову
и
Петрову
предоставлено
право
применять
любые
операции
SELECT
к
таблице
«C».
GRANT SELECT, UPDATE (
ОТДЕЛ
) ON TABLE C TO
Пет
-
ров
Это
означает
,
что
Петров
имеет
право
применять
любые
операции
SELECT
к
таблице
«C»,
а
также
обновлять
значе
-
ния
атрибутов
ОТДЕЛ
.
REVOKE SELECT ON TABLE C FROM
Иванов
Эта
команда
означает
,
что
Иванов
больше
не
имеет
права
выполнять
операции
SELECT
над
таблицей
«
С
».
Список
привилегий
,
которые
относятся
к
таблицам
:
SELECT (
выбор
)
UPDATE (
обновление
)
DELETE (
удаление
)
INSERT (
ввод
)
Опция
GRANT
может
распространяться
на
других
поль
-
зователей
.
Например
,
если
Иванов
имеет
право
передать
99
привилегию
А
Петрову
,
то
Петров
имеет
право
передать
привилегию
А
другому
пользователю
,
Васильеву
и
т
.
д
.
Иванов
:
GRANT SELECT ON TABLE C TO
Петров
WITH GRANT
OPTION
Петров
:
GRANT SELECT ON TABLE C TO
Васильев
WITH GRANT
OPTION
До
тех
пор
пока
пользователь
получает
GRANT OPTION,
он
может
передавать
ту
же
привилегию
другим
пользовате
-
лям
.
Если
Иванов
позже
хочет
отозвать
GRANT OPTION,
то
он
может
сделать
так
:
REVOKE SELECT ON TABLE C FROM
Петров
Такой
отзыв
будет
применен
как
к
Петрову
,
так
и
ко
всем
,
кому
он
передал
привилегию
,
и
т
.
д
.
2.3.
Шифровка
Различные
меры
идентификации
пользователей
и
провер
-
ки
полномочий
,
стандартные
способы
защиты
БД
могут
ока
-
заться
недостаточными
для
сильно
уязвимых
данных
.
В
та
-
ких
случаях
может
оказаться
желательным
зашифровать
данные
.
Зашифрованные
данные
агрессор
не
может
про
-
честь
,
если
он
хотя
бы
частично
не
знает
способа
шифров
-
ки
.
Разработке
методов
шифровки
посвящено
немало
ис
-
следований
.
Некоторые
из
методов
настолько
просты
,
что
легко
поддаются
дешифрации
.
Другие
чрезвычайно
сложно
расшифровать
,
что
обеспечивает
высокую
степень
защиты
данных
.
Шифровка
–
преобразование
читаемого
текста
в
нечитае
-
мый
текст
при
помощи
некоторого
алгоритма
;
применяется
для
защиты
уязвимых
данных
.
Сначала
рассмотрим
простую
схему
шифровки
,
затем
–
бо
-
лее
сложный
и
более
надежный
метод
.
100
Метод
простой
подстановки
Предположим
,
необходимо
зашифровать
сообщение
(
про
-
стой
текст
).
Идет
снег
.
Простой
текст
−
текст
,
который
можно
прочесть
.
Текст
-
шифр
−
текст
,
который
прочесть
невозмож
-
но
.
Метод
простой
подстановки
состоит
в
замене
каждой
буквы
алфавита
на
следующую
за
ней
в
алфавите
.
Считается
,
что
про
-
бел
идет
после
буквы
«
я
»
и
перед
буквой
«
а
».
Тогда
«
идет
снег
»
превращается
в
текст
–
шифр
:
йежуатожд
Метод
поалфавитной
подстановки
Предположим
,
мы
хотим
зашифровать
то
же
самое
сообще
-
ние
,
но
теперь
у
нас
есть
ключ
шифра
,
например
, «
защита
».
То
-
гда
:
1.
Ключ
пишется
под
текстом
и
повторяется
столько
раз
,
что
-
бы
полностью
«
закрыть
»
текст
:
идет
снег
защитазащ
.
2.
Будем
считать
,
что
пробел
занимает
тридцать
третье
и
по
-
следнее
место
в
алфавите
.
Для
каждого
символа
сложим
номер
в
алфавите
символа
текста
и
соответствующего
символа
клю
-
ча
,
разделим
на
33
и
сохраним
остаток
.
Заменим
символ
текста
на
символ
,
имеющий
вычисленный
номер
.
В
нашем
примере
под
пробелом
(33)
стоит
т
(19),
таким
образом
(33+19)= 52,
остаток
от
деления
на
33
равен
19.
На
19
месте
в
алфавите
стоит
буква
т
,
поэтому
вместо
про
-
бела
в
зашифрованном
тексте
будет
т
.
2.4.
Секретность
данных
БД
,
позволяющая
получать
агрегированную
информацию
о
больших
подмножествах
некоторого
множества
объектов
,
назы
-
вается
статистической
.
Примерами
могу
служить
БД
переписи
населения
,
налоговых
деклараций
либо
пациентов
госпиталя
.
Кроме
обычных
проблем
предотвращения
несанкционированно
-