
Среда программирования: Без программирования
Название работы: Защита информации. ЛР5. Изучение модели разграничения доступа в СУБД MySQL
Вид работы: Лабораторная работа
Тематика работы: Базы данных, Технологии, Прочие
Объем программы: 5 (по десятибалльной шкале)
Уровень сложности: 5 (по десятибалльной шкале)
Разработчик (автор):
Программист сайта kursovik.com
(письмо автору)
Данная работа написана ЧЕЛОВЕКОМ без использования ИИ
Ключевые слова: MySQL, СУБД, привилегии, пользователи, GRANT, REVOKE, phpMyAdmin, root, user1, user2, БД, таблицы, SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, аутентификация
Функции программы:
Лабораторная работа №5
Изучение модели разграничения доступа в СУБД MySQL
Постановка задачи:
1. Выполнить указанную в задании последовательность команд.
2. Оформить и защитить отчет с полученными результатами.
Задание:
1. Создание пользователей и задание им привилегий на доступ к БД и таблицам.
1.1 Запустите сервер MySQL, запустив пакет Denwer (команда StartDenwer)и подключитесь к серверу из-под администратора root.
1.2 Используя phpMyAdmin, просмотрите содержимое системной БД mysql. Обратите внимание на таблицу user, где хранятся учетные записи пользователей сервера БД.
1.3 Создайте двух пользователей СУБД MySQL: user1 и user2 различными способами: используя командный режим и через интерфейс phpMyAdmin.
В командном режимевыполните команду для добавления пользователя user1 и задания ему привилегий:
insert into user (Host, User, Password, Select_priv) values ('localhost', 'user1', password('user1'),'Y');
1.4 Рассмотрим процесс задания привилегий для пользователя. Выполните команду для задания привилегий пользователю user1 на БД db1:
insert into db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Alter_priv, Index_priv) values ('localhost', 'db1', 'user1', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
1.6 Выполните аналогичную команду для задания привилегий пользователю user2 на БД db2.
1.7 Выполните команду для задания привилегий пользователю user1 на таблицу colours БД db2:
insert into tables_priv (Host, Db, User, Table_name, Table_priv) values (‘localhost’, ’db2’, ‘user1’, ’table1’, ’Select,Update,Delete’);
2 Создание БД и назначение привилегий на таблицы данных
2.1 Подключитесь к серверу из-под user1, используя phpmyadmin.
createdatabasedb1;
В БД db1 создайте таблицы students и groups с помощью следующих SQL-запросов:
create table students
(
idint not null auto_increment primary key,
surnamevarchar (50) not null,
namevarchar (50) not null,
birthdate date not null,
address text not null,
telvarchar (13),
courseenum (‘1’,’2’,’3’,’4’,’5’,’6’) not null,
id_groupint
);
create table groups
(
idint not null auto_increment primary key,
namevarchar (10) notnull
);
Добавьте в таблицу groups записи для двух групп, например:
insert into groups (name) values (‘g1’);
Результат добавления данных в любую таблицу можно проконтролировать с помощью запроса
select * fromимя_таблицы;
Добавьтевтаблицуstudentsзаписидля 5 студентов, так, чтобы двое учились в одной группе, а трое – в другой, например:
insert into students (surname, name, birthdate, address, tel, course, id_group) values (‘Ivanov’, ‘Petr’, ‘1992-04-17’, ’Odessa’, ‘099-321-54-87’, ‘2’, 1);
2.2 Пользователь user2
2.2.1 Создайте БД с именем db2 и подключитесь к ней. В БД db2 создайте таблицу days с помощью следующего SQL-запроса:
create table days
(
idint not null auto_increment primary key,
namevarchar (20) notnull
);
Добавьте в таблицу days записи для трех дней недели – понедельника, вторника и среды, например:
insert into days (name) values (‘Sunday’);
В БД db2 создайте таблицу colours с помощью следующего SQL-запроса:
create table colours
(
idint not null auto_increment primary key,
namevarchar (20) notnull
);
Добавьте в таблицу colours записи для трех цветов – красного, синего и белого, например:
insertintocolours (name) values (‘green’);
3 Тестирование систем привилегий пользователей
3.1 Пользователь 1
3.1.1 Подключитесь к системной БД mysqlиз-под пользователя user1. Выполните запрос на добавление нового пользователя с именем new_user. Объясните результат выполнения запроса с точки зрения привилегий пользователя user1.
3.1.2 Подключитесь к БДdb2. Сделайте выборку всех записей из таблицы days. При работе с системной БД mysql (таблицей db) вы явно не указали, что пользователь user1 может просматривать БД db2. Объясните, почему просмотр БД db2 возможен.
3.1.3 Выполните запрос на добавление в таблицу days записи, например, для субботы. Объясните результат выполнения запроса с точки зрения привилегий пользователя user1 на БД db2.
3.1.4 Сделайте выборку всех записей из таблицы colours. Добавьте в нее запись для желтого цвета. Объясните результат выполнения запроса с точки зрения привилегий пользователя user1 на БД db2 и ее таблицу colours.
3.1.5 Обновите какую-либо запись в таблице colours, например:
updatecolourssetname=’pink’ whereid=2;
Объясните результат выполнения запроса с точки зрения привилегий пользователя user1 на БД db2 и ее таблицу colours.
3.1.6 Удалите запись для какого-либо цвета, например:
delete from colours where name=’orange’;
Объясните результат выполнения запроса с точки зрения привилегий пользователя user1 на БД db2 и ее таблицу colours.
3.2 Пользователь 2
3.2.1 Подключитесь к БД db1. Сделайте выборку всех записей из таблицы students. Добавьте запись для еще одной группы в таблицу groups. Объясните результат выполнения запроса с точки зрения привилегий пользователя user2 на БД db1.
3.2.2 Удалите все записи из таблицы groups. Объясните результат выполнения запроса с точки зрения привилегий пользователя user2 на БД db1. Создайте в БД db1 новую таблицу с именем test_table (поля: id типа int, не пустое; test_field типа text, не пустое; первичный ключ – поле id). Объясните результат выполнения запроса с точки зрения привилегий пользователя user2 на БД db1.
3.2.3 Добавьте к таблице test_table новый столбец description с помощью запроса:
alter table test_table add column description text;
Объясните результат выполнения запроса с точки зрения привилегий пользователя user2 на БД db1.
3.2.4 Удалите таблицу test с помощью запроса: droptabletest; Объясните результат выполнения запроса с точки зрения привилегий пользователя user2 на БД db1.
3 Использование команд GRANT и REVOKE для задания привилегий пользователей
3.1 Войдите в систему из-под пользователя root. Создайте пользователей user3 иuser4.
3.2 Выполните команду для задания привилегий пользователю user3 на БД db3 (если указанного пользователя не существует, он создастся):
grant create, select, insert, update, delete on db3.* to user3@localhost identified by ‘user3’;
3.3 Войдите в систему из-под пользователя user3. Создайте БД с именем mydb. Объясните результат выполнения запроса с точки зрения привилегий пользователя user3. Создайте БД с именем db3. Объясните результат выполнения запроса с точки зрения привилегий пользователя user3.
3.4 Подключитесь к БД db3. Создайте в ней таблицу
goods (поля: id типа int, не пустое, auto_increment; name типа varchar (200), не пустое; type типа varchar (30) не пустое; price типа numeric(9,2), не пустое; первичный ключ – поле id).
3.5 Добавьте в таблицу goods несколько записей. Результат добавления данных таблицу можно проконтролировать с помощью запроса select * fromgoods; Обновите какую-либо запись в таблице goods. Удалите записи, у которых id>2. Объясните результат выполнения запросов на добавление, удаление и изменение записей с точки зрения привилегий пользователя user3.
3.6 Добавьте поле в таблицу goods с помощью запроса:
altertablegoodsadddate_proddatenotnull;
Объясните результат выполнения запроса с точки зрения привилегий пользователя user3.
3.7 Удалите таблицу goods. Объясните результат выполнения запроса с точки зрения привилегий пользователя user3.
3.8 Войдите в систему из-под пользователяroot. Выполните команду
revoke select on db3.* from user3@localhost identified by ‘user3’;
3.9 Войдите в систему из-под пользователя user3и подключитесь к БД db3. Выполните команду select * fromgoods;
Объясните результат выполнения запроса с точки зрения привилегий пользователя user3.
3.10 В БД db3 создайте еще одну таблицу с именем customers (поля: id типа int, не пустое, auto_increment; name типа varchar (255), не пустое; info типа text; первичный ключ – поле id).
3.11 Войдите в систему из-под пользователяroot. Выполните команду для задания привилегий новому пользователю user4:
grantselecton db3.customers to user4@localhost identifiedby ‘user4’;
3.12 Войдите в систему из-под пользователяuser4и подключитесь к БД db3. Создайте таблицу с именем users (поля: id типа int, не пустое, auto_increment; name типа varchar (255), не пустое; первичный ключ – поле id). Объясните результат выполнения запроса с точки зрения привилегий пользователя user4.
3.13 Сделайте выборку записей из таблицы customers. Объясните результат выполнения запроса с точки зрения привилегий пользователя user4. Добавьте запись в таблицу customers. Объясните результат выполнения запроса с точки зрения привилегий пользователя user4.
3.14 Войдите в систему из-под пользователяroot.Выполнитекоманду:
grant drop on db3.customers to user3@localhost identified by ‘user3’;
3.15. Войдите в систему из-под пользователяuser3иподключитеськБДdb3. Выполните команду на удаление таблицы goods. Объясните результат выполнения запроса с точки зрения привилегий пользователя user3. Выполните команду на удаление таблицы customers. Объясните результат выполнения запроса с точки зрения привилегий пользователя user3.
Описание (отчет):
Есть
на 34 страниц, посмотреть оглавление
Перед покупкой готовой работы не забудьте проверить её оригинальность. Запросить у администратора проверку текущей оригинальности работы по версии системы Антиплагиат.РУ
Предварительный просмотр
|
Стоимость ОТЧЕТА составляет 990 руб РФ Продажа каждой работы строго учитывается, у каждой работы есть своя история продаж. |