Технический университет И. П. Карпова базы данных утверждено Редакционно-издательским советом института в качестве Учебного пособия Москва 2009
Вид материала | Документы |
СодержаниеЗащита от несанкционированного доступа Парольная идентификация [with grant option] Revoke [grant option for] |
- Прокурор в уголовном процессе, 2839.04kb.
- Нефтяное товароведение, 1449.59kb.
- Пособие подготовлено на кафедре экономической теории © Новосибирский государственный, 754.49kb.
- Учебное пособие Рекомендовано в качестве учебного пособия Редакционно-издательским, 2331.42kb.
- Конспект лекций Рекомендовано в качестве учебного пособия Редакционно-издательским, 1023.31kb.
- А. В. Терентьев менеджмент организации курсовое и диплом, 2230.76kb.
- Методика и техника проведения прикладного социологического исследования утверждено, 1197.31kb.
- Я управления рисками в организации рекомендовано в качестве учебного пособия Редакционно-издательским, 1160.94kb.
- А. С. Калмыкова Главный внештатный детский инфекционист, 1294.52kb.
- Методические указания к курсовому и дипломному проектированию Москва 2007, 873.19kb.
Защита от несанкционированного доступа
Под функцией секретности данных понимается защита данных от преднамеренного искажения и/или доступа пользователей или посторонних лиц. Для этого вся информация делится на общедоступные данные и конфиденциальные, доступ к которым разрешен только для отдельных групп лиц. Решение этого вопроса относится к компетенции юридических органов или администрации предприятия, для которого создаётся БД, и является внешней функцией по отношению к БД.
Рассмотрим техническую сторону обеспечения защиты данных в БД от несанкционированного доступа. Общий принцип управления доступом к базе данных такой: СУБД не должна разрешать пользователю выполнение какой-либо операции над данными, если он не получил на это права. Санкционирование доступа к данным осуществляется администратором БД. В обязанности администратора БД входит:
- назначение отдельным группам пользователей прав доступа (привилегий) к отдельным группам данных в соответствии с правилами ПО;
- организация системы контроля доступа к данным;
- тестирование вновь создаваемых средств защиты данных;
- периодическое проведение проверок правильности работы системы защиты, исследование и предотвращение сбоев в её работе.
Примечание: администратор БД обычно назначает права доступа в соответствии с проектом БД, который должен включать перечень групп пользователей и их привилегии.
Для каждого пользователя система поддерживает паспорт пользователя, содержащий его идентификатор, имя процедуры подтверждения подлинности и перечень разрешённых операций. Подтверждение подлинности заключается в доказательстве того, что пользователь является именно тем человеком, за которого себя выдаёт. Чаще всего подтверждение подлинности выполняется путём парольной идентификации. Перечень операций обычно определяется той группой, к которой принадлежит пользователь. В реальных системах иногда предусматривается возможность очень ограниченного доступа к данным постороннего человека, не требующая идентификации (доступ типа "гость").
Парольная идентификация заключается в присвоении каждому пользователю двух параметров: имени (login) и пароля (password). При входе в систему она запрашивает у пользователя его имя, а для подтверждения того, что это имя ввёл его владелец, система запрашивает пароль. Имя выдаётся пользователю при регистрации администратором, пароль пользователь устанавливает сам.
При задании пароля желательно соблюдать следующие требования:
- длина пароля должна быть не менее 6-и символов;
- пароль должен содержать комбинацию букв и цифр или специальных знаков, пароль не может содержать пробелы;
- пароли должны часто меняться.
Для контроля выполнения этих требований обычно применяются специальные программы.
Управление доступом к данным осуществляется через СУБД, которая и обеспечивает защиту данных. Но такие данные вне СУБД становятся общедоступны. Если известен формат БД, можно осуществить к ней доступ с помощью другой программы (СУБД), и никакие ограничения при этом не помешают. Для таких случаев предусмотрено кодирование данных. Используются различные методы кодирования: перекомпоновка символов в кортеже, замена одних символов (групп символов) другими символами (группами символов) и т.д. Кодирование может быть применено не ко всему кортежу, а только к ключевым полям. Декодирование производится непосредственно в процессе обработки, что, естественно, увеличивает время доступа к данным. Поэтому к кодированию прибегают только в случае высоких требований к конфиденциальности данных.
Предоставление прав доступа (привилегий) в системах, поддерживающих язык SQL, осуществляется с помощью двух команд:
- GRANT – предоставление одной или нескольких привилегий пользователю (или группе пользователей):
GRANT { <список привилегий> | ALL PRIVILEGES }
ON <имя объекта>
TO {<список пользователей> | PUBLIC}
[WITH GRANT OPTION];
где <список привилегий> – набор прав, которые необходимо предоставить, или ALL PRIVILEGES – все права на данный объект;
<имя объекта> – имя объекта БД, к которому предоставляется доступ;
<список пользователей> – перечень пользователей (или ролей, см. дальше), которым будут предоставлены указанные права;
PUBLIC – предопределённый пользователь, привилегии которого доступны всем пользователям БД.
WITH GRANT OPTION – ключевые слова, дающие возможность пользователям из списка пользователей предоставлять назначенные права другим пользователям (т.е. передавать эти права).
Права, подразумеваемые под словами ALL PRIVILEGES, зависят от типа объекта. Примерный перечень прав в зависимости от типа объекта БД приведён в табл. 6.1.
Таблица 6.1. Использование объектных привилегий
Привилегия | Операции | Таблицы | Представления | Процедурные объекты |
ALTER | изменение определения объекта | + | + | + |
DELETE | удаление данных | + | + | |
EXECUTE | выполнение объекта | | | + |
INSERT | добавление данных | + | + | |
SELECT | чтение данных | + | + | |
UPDATE | изменение данных | + | + | |
Примечание: процедурные объекты – это хранимые процедуры и функции.
- REVOKE – отмена привилегий:
REVOKE [GRANT OPTION FOR]
{ <список привилегий> | ALL PRIVILEGES }
ON <имя объекта>
FROM {<список пользователей> | PUBLIC}
{ RESTRICT | CASCADE };
где [GRANT OPTION FOR] – отмена права передачи привилегий;
CASCADE – при отмене привилегий у пользователя отменяются все привилегии, которые он передавал другим пользователям;
RESTRICT – если при отмене привилегий у пользователя необходимо отменить переданные другим пользователям привилегии, то операция завершается с ошибкой.
Другие ключевые слова имеют то же значение, что и в команде GRANT.
Для того чтобы упростить процесс управления доступом, многие СУБД предоставляют возможность объединять пользователей в группы или определять роли. Роль – это совокупность привилегий, предоставляемых пользователю и/или другим ролям. Такой подход позволяет предоставить конкретному пользователю определённую роль или отнести его к определённой группе пользователей, обладающей набором прав в соответствии с задачами, которые на неё возложены.
Кроме привилегий на доступ к объектам СУБД ещё может поддерживать так называемые системные привилегии: это права пользователя на создание/изменение/удаление (create/alter/drop) объектов различных типов. В некоторых системах такими привилегиями обладают только пользователи, включённые в группу АБД. Другие СУБД предоставляют возможность назначения дифференцированных системных привилегий любому пользователю в случае такой необходимости. Например, в СУБД Oracle права на создание таблиц и представлений пользователю manager можно предоставить с помощью той же команды GRANT, только без указания объекта:
GRANT create table, create view
TO manager;
"Плох тот план, который не допускает изменений".
Публиус Сирус, древнеримский мыслитель