Добавлен: 20.10.2018
Просмотров: 679
Скачиваний: 9
подсхемы: разные категории пользователей могут иметь разные права на
выполнение операций чтения, добавления, удаления и модификации.
Языки запросов могут быть использованы для определения привилегий
доступа почти так же, как и при определении ограничений целостности.
Секретность в SQL
Стандарт SQL определяет два оператора GRANT и REVOKE для
предоставления и отмены привилегий.
Предоставление привилегий
GRANT {список_действий | ALL PRIVILEGES}
ON имя_объекта TO { имя_пользователя | PUBLIC}
[ WITH GRANT OPTION],
где список_действий – действия из набора: SELECT, INSERT, DELETE,
UPDATE (для таблиц);
ALL PRIVILEGES – все действия;
имя_объекта – имя таблицы, представления, хранимой процедуры, триггера;
PUBLIC – права предоставляются всем пользователям;
WITH GRANT OPTION - передаются не только права на действия, но и право
на передачу прав другим пользователям.
Пример.
С базой данных работают три пользователя с именами User1, User2,
User3. Пользователь User1 создал объект Table1 и может передать права на
работу с ним другим пользователям. Предполагается, что пользователь User2
будет только просматривать таблицу, а User2 может вводить новые записи. В
этом случае права можно распределить следующим образом:
GRANT SELECT ON Table1 TO User2;
GRANT INSERT ON Table1 TO User3;
Оператор отмены привилегий
REVOKE { список_операций | ALL PRIVILEGES} ON имя_объекта
FROM {список_пользователей | PUBLIC } {CASCADE | RESTRICT}.
Вариант CASCADE - отмена привилегий не только упомянутых пользователей,
но и всех пользователей, получивших привилегии от данного пользователя;
RESTRICT – отмена привилегий только упомянутых пользователей.
Секретность в QBE
В QBE признаются права на включение (I.), удаление (D.), обновление
(U.) и чтение (P.). Чтобы предоставить пользователю некоторые права на
отношение R, владелец этого отношения записывает специальный кортеж в
таблицу для R: AUTR(список_прав).имя. Здесь имя является либо именем
человека, либо переменной, представляющей произвольное лицо. Если список
прав опущен, то предоставляются все четыре права. Если имя опущено, то
права предоставляются всем пользователям.
В строке ограничений в колонках атрибутов записываются переменные,
константы, выражения. Переменная указывает, что право применяется к
данному столбцу. Константа означает, что право распространяется только на
кортежи с указанным значением атрибута. Пробел – доступ к атрибуту
запрещен. Выражение представляет некоторое условие.
Примеры.
Заказы
Фамилия Товар Количество
AUTR(P.).Петров _n
_i
_q
Петров имеет право читать любую информацию из отношения Заказы.
Заказы
Фамилия Товар Количество
AUTR().Петров _n
_i
_q
Петров может выполнять любые операции над отношением Заказы.
Покупатели
Фамилия Адрес Баланс
AUTR(P.)._Петров _n
>0
Все покупатели могут читать положительный баланс и фамилию, но не адрес.
Покупатели
Фамилия Адрес Баланс
AUTR(P.)._Петров _Петров
_b
Покупатели могут читать только собственные балансы.
Секретность статистических баз данных
Базы данных, позволяющие получать совокупную (агрегированную)
информацию о больших подмножествах некоторого множества объектов,
называются статистическими. Примерами могут служить базы данных
переписи населения, местных органов власти, налоговых служб, медицинские и
др. Помимо обычных проблем обеспечения секретности в статистических БД
существует проблема запрета доступа к данным, касающихся конкретных лиц.
Другими словами, разрешается доступ к совокупной информации большой
категории лиц, и запрещается выдача сведений о конкретных лицах.
Проблема возникает вследствие того, что данные о конкретной личности
могут быть получены косвенным путем посредством нескольких совокупных
запросов. Например, запрос 1 относится к некоторой группе лиц, а запрос 2 к
той же группе плюс конкретное лицо. Сравнивая ответы на два запроса,
нетрудно сделать вывод о данных интересующего нас лица.
Можно показать, что раскрытие индивидуальных данных максимально
осложняется, если разрешается делать запросы только для больших групп лиц,
и размер пересечения любых двух запросов должен быть мал. Это соображения
используются при реализации защиты статистических баз данных.