Лекции / Л-7 - Защита данных в СУБД
.pdfПредоставление объектных привилегий (1)
Предоставление одной или нескольких привилегий пользователю (группе пользователей):
GRANT { <список привилегий> | ALL PRIVILEGES }
ON <имя объекта>
ТО { <список пользователей> | PUBLIC }
[ WITH GRANT OPTION ] ;
<список привилегий> – набор предоставляемых прав, ALL PRIVILEGES – все права на объект;
<имя объекта> – имя объекта БД, к которому представляется доступ;
Предоставление объектных привилегий (2)
<список пользователей> – перечень пользователей (ролей), которым будут предоставлены указанные права;
PUBLIC – предопределенный пользователь, привилегии которого доступны всем пользователям БД;
WITH GRANT OPTION – ключевые слова, дающие возможность пользователям из списка пользователей передавать назначенные права другим пользователям.
Права, подразумеваемые словами ALL PRIVILEGES, зависят от типа объекта. Примерный перечень прав в зависимости от типа объекта БД приведен в таблице.
Использование объектных привилегий
Отмена привилегий (1)
REVOKE [ GRANT OPTION FOR ]
{<список привилегий> | ALL PRIVILEGES } ON <имя объекта>
FROM {<список пользователей> | PUBLIC)
{RESTRICT | CASCADE } ;
[GRANT OPTION FOR] – отмена права передачи привилегий;
Отмена привилегий (2)
CASCADE – при отмене привилегий у пользователя отменяются все привилегии, которые он передавал другим пользователям;
RESTRICT – если при отмене привилегий у пользователя необходимо отменить переданные другим пользователям привилегии, то операция завершается с ошибкой.
Другие ключевые слова имеют то же значение, что и в команде GRANT.
Роли
Для того чтобы упростить процесс управления доступом, некоторые СУБД предоставляют возможность объединять пользователей в группы или определять
роли.
Роль – это совокупность привилегий, предоставляемых пользователю и / или другим ролям.
Такой подход позволяет предоставить конкретному пользователю определенную роль или отнести его к определенной группе пользователей, обладающей набором прав в соответствии с решаемыми задачами.
Системные привилегии (1)
Кроме объектных привилегий СУБД еще может поддерживать системные привилегии – права пользователя на создание / изменение /удаление (CREATE / ALTER / DROP) объектов различных типов.
В некоторых системах такими привилегиями обладают только пользователи, включенные в группу АБД.
Другие СУБД предоставляют возможность назначения дифференцированных системных привилегий любому пользователю в случае такой необходимости.
Системные привилегии (2)
В СУБД Oracle права на создание таблиц и представлений, а также право на удаление любых представлений пользователю manager можно предоставить с помощью той же команды GRANT, только без указания объекта:
GRANT create table, create view, drop any view
TO manager;
Шифрование данных (1)
Управление доступом к данным осуществляется через СУБД, которая обеспечивает защиту данных. Но такие данные вне СУБД становятся общедоступными.
Если известен формат БД, то можно осуществить к ней доступ с помощью другой СУБД, и никакие ограничения не помешают. В этом случае для защиты используют
шифрование данных.
Шифрование защищает данные от неавторизирован-
ного просмотра.
С помощью шифрования обеспечивается самый низкий уровень защиты на уровне данных
Шифрование данных (2)
Используются различные методы шифрования: перекомпоновка символов в кортеже, замена одних символов (групп символов) другими (или группами символов) и пр.
Шифрование может быть применено только к ключевым полям кортежа. Декодирование производится в процессе обработки, что увеличивает время доступа к данным.
Поэтому шифрование используют только при высоких требованиях к конфиденциальности данных.
Даже имея доступ к БД, пользователь не сможет просмотреть данные в понятном виде без помощи специального клиентского ПО или пароля.