Презентация по методам и средствам защиты данных на тему "Контроль доступа"
Cкачать презентацию: Презентация по методам и средствам защиты данных на тему "Контроль доступа"
Презентация по слайдам:
Слайд #1
Лекция 22
Тема курса: Целостность и безопасность БД. Контроль доступа.
Тема Урока: Контроль доступа

Слайд #2
Пользователи
По объему привилегий пользователи разделяются на несколько категорий:
рядовые пользователи
привилегированный пользователь, не имеющий права предоставлять привилегии
привилегированный пользователь, имеющий право предоставлять привилегии
владелец объектов (таблиц, файлов и т.д.)
администратор

Слайд #3
Способы управления доступом к информационному ресурсу
1. Управление доступом к серверу (файл httpd.conf).
2. Управление доступом к хосту
3. Использование системы привилегий MySQL.
4. Использование скриптов, которые позволяют контролировать доступ к сайту посредством аутентификации пользователей.

Слайд #4
Файл httpd.conf
Все настройки сервера Apache хранятся в текстовом файле httpd.conf, который располагается в каталоге conf. Описания закомментированы при помощи символа «#».

Слайд #5
.htaccess – это конфигурационный файл, который даёт возможность настраивать работу сервера на уровне отдельных каталогов: устанавливать права доступа к файлам в каталогах, менять названия индексных файлов, самостоятельно обрабатывать коды ответов протокола HTTP, модифицировать адреса запрошенных страниц.

Слайд #6
Файл httpd.conf
Эти директивы определяют, какие
пользователи имеют доступ к информации,
расположенной на этом сервере.
Order allow,deny
Allow from all

Слайд #7
Запретить доступ с определенного IP-адреса
Deny from 195.135.232.70

Слайд #8
Order deny,allow
Deny from all
Allow from 195.135.232.70
Директива Order позволяет задать порядок, в котором будут выполняться директивы. Сначала выполняется директива запрета доступа(директива Deny), а затем разрешается доступ то для IP-адреса 195.135.232.70 (директива Allow).
Разрешить доступ только с определенного IP-адреса

Слайд #9
Система привилегий MySQL

Слайд #10
Добавление новых пользователей в MySQL
Пользователей можно добавлять:
при помощи команды GRANT
напрямую в таблицы назначения привилегий MySQL
с помощью надстроек MySQL (н-р phpMyAdmin)

Слайд #11
Установление и контроль привилегий - прерогатива администратора БД.
Привилегии устанавливаются и отменяются операторами языка SQL GRANT (РАЗРЕШИТЬ) и REVOKE (ОТМЕНИТЬ).

Слайд #12
GRANT
Оператор GRANT указывает конкретного пользователя, который получает конкретные привилегии доступа к указанной таблице.
Например,
GRANT SELECT, INSERT ON items ТО petrov;
привилегии на выполнение операций
объект
пользователь

Слайд #13
Отмена привилегий выполняется оператором REVOKE.
Например,
REVOKE
REVOKE INSERT ON items FROM petrov;
привилегия
объект
пользователь

Слайд #14
Глобальный уровень
Глобальные привилегии обращаются ко всем базам данных на данном сервере. Эти привилегии сохранены в таблице mysql.user.
Уровень баз данных
Привилегии баз данных обращаются ко всем таблицам в данной базе данных (хранятся в таблицах mysql.db и mysql.host).
Команды GRANT и REVOKE позволяют администраторам системы создавать пользователей, предоставлять и отменять права на MySQL-пользователей в четырех уровнях привилегий:

Слайд #15
Уровень таблиц
Привилегии таблиц обращаются ко всем столбцам в данной таблице (хранятся в mysql.tables_priv).
Уровень столбцов
Привилегии столбцов обращаются к одиночным столбцам в данной таблице (хранятся в таблице mysql.columns_priv).

Слайд #16
Если даются привилегии пользователю, который не существует, он будет автоматически создан.

Слайд #17
ALL PRIVILEGES;
CREATE; DROP;
INSERT; DELETE; UPDATE;
SELECT;
FILE;
INDEX;
GRANT и др.
Типы привилегий для инструкций GRANT и REVOKE :

Слайд #18
Чтобы предоставлять права пользователям с произвольных компьютеров, MySQL поддерживает определение значения user_name в форме user@host. При определении строки user или строки host, можно цитировать имя пользователя или хоста (например, 'test-user'@'test-hostname').

Слайд #19
Например,
user@"%.joker.botik.ru"
применяется к user для любого компьютера в домене joker.botik.ru, а
user@"144.155.166.%"
будет применено к user с любой машины в сети 144.155.166 класса C.
Простая форма user представляет собой синоним для user@"%".
Можно определять групповые символы в hostname.

Слайд #20
Анонимные пользователи определяются вставкой записей с User='' в таблицу mysql.user.

Слайд #21
Привилегии для таблицы или столбца сформированы из логического ИЛИ (OR) привилегий в каждом из четырех уровней привилегии.
Например, если таблица mysql.user определяет, что пользователь имеет глобальную привилегию select, это не может быть отменено записью на других уровнях доступа!

Слайд #22
Пароли также могут быть установлены командой SET PASSWORD

Слайд #23
Стадия 1: сервер проверяет, стоит ли ему связываться с пользователем.
Стадия 2: после разрешения соединиться с сервером, будет проверяется каждый запрос, который выдает, чтобы видеть, имеет ли пользователь достаточные привилегии, чтобы выполнить его.
Управление доступом MySQL включает две стадии:

Слайд #24
Сервер использует таблицы user, db и host в базе данных mysql на обеих стадиях управления

Слайд #25
Для второй стадии управления доступом (проверка запроса) сервер может, если запрос включает таблицы, дополнительно консультироваться с таблицами tables_priv и columns_priv.

Слайд #26

Слайд #27
Контроль доступа к сайту посредством аутентификации пользователей
Для организации такого доступа нужны:
таблица для хранения имен и паролей;
web-страница для регистрации пользователя на сервере (входа на сервер) и аналогичная веб-страница для выхода;
сценарий, который может использоваться для контроля прав доступа пользователей.

Слайд #28
Функция md5
В настоящее время никто не хранит пароль в открытом виде — используется его хеш, который представляет собой набор символов, получаемый в результате шифрования пароля по алгоритму MD5, реализованному в РНР в виде функции:
md5(строка);
Функция зашифровывает строку, переданную в качестве параметра, по алгоритму MD5 и возвращает результат этого действия.

Слайд #29
транзакции баз данных
Транзакция — ряд отдельных действий, которые должны быть полностью обработаны или не обработаны вообще.

Слайд #30
Транзакции присущи следующие признаки:
атомарность. Транзакция должна оставаться целостной. Т.е. она должна полностью совершиться или полностью не совершиться. Если она достигает цели, все изменения, задаваемые транзакцией, должны сохраниться системой. Если транзакция терпит неудачу, все ее изменения полностью отменяются. В системах БД используется термин откат для процесса, который аннулирует все изменения неудавшейся транзакции, и термин фиксация для процесса, благодаря которому изменения транзакции сохраняются;

Слайд #31
непротиворечивость. Транзакции должны преобразовать базу данных из одного постоянного состояния в другое. Например, транзакция, создающая счет-фактуру для заказа, переводит заказ из формы «отгружено» в форму «выписана счет-фактура», производя соответствующие изменения базы данных;

Слайд #32
изолированность. Каждая транзакция должна исполняться независимо от других транзакций, которые осуществляются с ней одновременно;

Слайд #33
долговечность. Изменения, сделанные удавшимися транзакциями, должны оставаться постоянными, даже после остановки или обрушения базы данных или другого критического состояния системы.

Слайд #34
Поддержка транзакций в MySQL
Чтобы обеспечить возможность поддержки транзакций, при создании таблицы должен быть определен механизм запоминания - InnoDB или BOB (Berkeley DM)

Слайд #35
Например:
CREATE TABLE LANGUAGE
(LANGUAGE_CODE CHAR (2) NOT NULL, LANGUAGE_NAME VARCHAR (40) NOT NULL, PRIMARY KEY (LANGUAGE_CODE)) ENGINE = INNODB;

Слайд #36

Слайд #37
Для таблиц, которые создаются с использованием механизмов InnoDB или BOB, поддержка транзакций доступна в двух режимах:
режим автофиксации. Автофиксация включается и выключается при помощи выражения SET, где значение «0» отключает автофиксацию, а значение «1» — включает:
SET AUTOCOMMIT=0; SET AUTOCOMMIT=1;

Слайд #38
явный режим. Явный режим действует, даже если режим автофиксации отключен. В нем могут использоваться следующие выражения SQL:
START TRANSACTION [WITH CONSISTENT SNAPSHOT];
SAVEPOINT идентификатор_точки_сохранения;
ROLLBACK[TO идентификатор_точки_сохранения];
COMMIT;
