МИНИСТЕРСТВО связи и МАССОВЫх КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
государственное образовательное учреждение
высшего профессионального образования
«САНКТ-ПЕТЕРБУГРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им. проф. М.А. БОНЧ-БРУЕВИЧА»
Факультет Информационных систем и технологий
Кафедра Информационных управляющих систем
ОТЧЕТ
ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
проф., д.т.н. |
|
|
|
Н.Н. Мошак |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ЛАБОРАТОРНАЯ РАБОТА № 3 |
||||
«АДМИНИСТРИРОВАНИЕ И НАСТРОЙКА ПОЛИТИКИ БЕЗОПАСНОСТИ СЕРВЕРА РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ MySQL» |
||||
по курсу: Безопасность информационных технологий и систем
|
||||
|
||||
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. |
ИСТ-012 |
|
|
|
Ольховский И.А. |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург
2021
Цель:
Изучение команды MySQL и научиться устанавливать, администрировать SQL-сервер на примере сервера MySQL и настраивать его параметры безопасности.
Основные сведения:
Разработчиком MySQL, популярной SQL-базы данных с открытым кодом, является компания MySQL AB. В настоящее время компания куплена корпорцией Oracle, которой и принадлежит теперь продукт. Однако MySQL по-прежнему остается базой данных с открытым кодом. Свое происхождение MySQL ведет от продукта mSQL, разработанного в конце 1970-х гг. компанией TcX и использовавшемуся для доступа к таблицам, для которых использовались собственные быстрые подпрограммы низкого уровня. Однако после тестирования был сделан вывод, что скорость и гибкость mSQL недостаточны. В результате для базы данных был разработан новый SQL-интерфейс. Новый продукт получил название MySQL. Массовое же признание MySQL получила начиная с линейки продуктов версии 3, которые стали широко использоваться на серверах в сети Интернет. В настоящее время используется 5 версия продукта.
Ниже приведено описание важных характеристик программного обеспечения MySQL:
Внутренние характеристики и переносимость
Написан на C и C++. Протестирован на множестве различных компиляторов.
Работает на различных аппаратных платформах и разных операционных системах.
Высокая производительность за счет максимально оптимизированного кода, эффективной системы распределения памяти и продуманной системы дисковых таблиц.
Безопасность
Система, основанная на привилегиях и паролях, за счет чего обеспечивается гибкость и безопасность, и с возможностью верификации с удаленного компьютера. Пароли защищены, т.к. они при передаче по сети при соединении с сервером шифруются.
Масштабируемость
Способность работать с очень большими базами данных (десятки и сотни миллионов записей).
Возможность кластеризации серверов и распределения обработки информации между серверами
Ход работы:
Установка MySQL
Для выполнения работы был скачан MySQL Installer с официального сайта mysql.com. После скачивания открывается окно программы, в котором мы выбирает тип установки. Выбираем «Custom», т.е. выбор элементов для установки, нажимаем «Next».
Нам открывается меню выбора частей для установки. Мы переносим в правую часть окна следующие части:
В группе «MySQL Servers» - MySQL Server.
Группу Documentation – полностью.
В следующем окне мы можем наблюдать за процессом установки программы. Если установка прошла успешно, то мы увидим следующие окно:
После этого откроется окно конфигурации, где в поле «Config Type» следует выбрать «Development Computer».
Далее нам предлагают назначить пароль администратора. Вводим пароль и переходим к следующему окну.
Следующее окно оставим без изменений.
После этого установка программы заканчивается. MySQL успешно установлен на компьютер.
Создание базы данных MySQL
Войдём в программу MySql
Создадим собственную базу данных с названием labaratoryWork3 с помощью команды: create database laboratoryWork3;
И проверим успешность выполнения, отобразив список существующих баз данных.
Выберем нашу базу данных для работы с ней: use laboratoryWork3;
Создание нового пользователя и настройка его прав доступа
Создадим пользователя с именем LocalUser и установим ему пароль password. Для этого выполним следующую команду:
create user ‘LocalUser’@’localhost’ identified by ‘password’;
Назначим вновь созданному пользователю неограниченные права доступа к нашей пользовательской базе данных laboratoryWork3, выполним следующую команду:
grant all privileges on laboratoryWork3.* to 'LocalUser'@'localhost';
Проверим, применились ли права, просмотрев их для пользователя с помощью команды:
show grants for ‘LocalUser’@’localhost’;
Создание нового пользователя и применение к нему первоначальных прав доступа успешно осуществлено.
Организация доступа не привилегированного пользователя к серверу. Попробуем подключиться к серверу MySQL с помощью утилиты «MySQL Workbench».
Выберем “New Connection” и настроим параметры подключения
После чего настройка нового соединения будет успешно завершена (Рис. 15а), а в утилите «MySQL Workbench» появится новое доступное соединение за нашего созданного не привилегированного пользователя.
Попробуем подключиться к серверу с использованием этого нового соединения, выполнив следующие действия: Кликнуть на подключение LocalUser правой кнопкой мыши → Start Command Line Client
Как можно заметить, подключение прошло успешно:
Назначение специальных прав доступа для пользователя MySQL.
Разрешим пользователю только просмотр записей остальных баз данных, имеющихся в файловой системе SQL, cделаем это следующей командой:
grant SELECT, INSERT on laboratoryWork3.* to ‘LocalUser’@’localhost’;
Очевидно, что изменение прав доступа к базе данным и содержащимся в них таблицам для пользователя LocalUser успешно осуществлено в соответствии с ролью пользователя на предприятии.
Создание таблицы в ранее установленной базе данных
Создадим пользовательскую таблицу с названием phoneNumbers и с параметрами, заданными в соответствии с условиями лабораторной работы: UserName – тип данных Text, UserAddress – тип данных Text, UserPhone – тип данных Text. Также добавим дополнительную колонку, в которой пропишем автоматический счетчик записей auto_increment primary key типа Integer – это значение будет увеличиваться с каждой новой записью и позволит более гибко оперировать содержимым таблицы. Для этого используем команду:
create table phoneNumbers (id integer auto_increment primary key, UserName text not null, UserAddress text not null, UserPhone text not null);
Заполним её произвольными данными – в нашем примере это телефонная книга, поэтому добавим в нее записи, содержащие имя, адрес и телефонный номер абонентов с помощью команд вида:
insert into phoneNumbers (UserName, UserAddress, User Phone) values (‘Roman’, ‘Dalnevostochniy pr., 71’, ‘777-58-01’);
Просмотрим содержимое таблицы:
select * from phoneNumbers;
Очевидно, что новая таблица phoneNumbers с несколькими записями успешно создана.
Запрос выборок из таблицы
Проверим корректность настроенных прав для пользователя LocalUser, а также ознакомимся с механизмом запроса записей из таблицы в SQL.
Сделаем несколько выборок из таблицы phoneNumbers:
Выборка из таблицы phoneNumbers значений адреса и телефона для пользователей 'Roman' и 'Diana' с помощью следующих команд:
select UserAddress, UserPhone from phoneNumbers where UserName=’Roman’;
select UserAddress, UserPhone from phoneNumbers where UserName=’Diana’;
Выборка всех записей из таблицы phoneNumbers с сортировкой по полю UserName в алфавитном порядке с использованием следующей команды:
select * from phoneNumbers order by UserName asc;
Очевидно, что запросы пользователя LocalUser к таблице phoneNumbers успешно выполняются.
Проверим, корректно ли работает механизм задания прав пользователя, попробовав удалить таблицу phoneNumbers с использованием следующей команды:
drop table phoneNumbers;
Очевидно, что пользователю LocalUser действительно не хватает прав на удаление таблицы phoneNumbers – как и настраивалось ранее. Следовательно, механизм безопасности на основе прав доступа к базе данных и таблице работает правильно.
Выводы:
В ходе лабораторной работы были изучены команды MySQL, получены умения устанавливать, администрировать SQL-сервер на примере сервера MySQL и настраивать его параметры безопасности.
