LR8.Tyutterin_Yakov_Z1411-1
.pdfМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
канд. техн. наук, доц. |
|
Е. Л. Турнецкая |
должность, уч. степень, звание |
подпись, дата |
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №8
Пользовательские привилегии
по дисциплине: Базы данных
РАБОТУ ВЫПОЛНИЛ |
|
|
|
|
|
СТУДЕНТ гр. № |
Z1411 |
|
|
Я. Н. Тюттерин |
|
|
|
|
|
|
|
|
номер группы |
подпись, дата |
|
инициалы, фамилия |
|
Студенческий билет № |
2022/4886 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Санкт-Петербург 2024
Лабораторная работа № 8. ПОЛЬЗОВАТЕЛЬСКИЕ ПРИВИЛЕГИИ.
Цели работы: Получение практических навыков по администрированию СУБД MySQL.
Вариант 18. Занятость актеров театра. Работников театра можно подразделить на актеров, музыкантов, постановщиков и служащих. Каждая из перечисленных категорий имеет уникальные атрибуты-характеристики и может подразделяться (например, постановщики) на более мелкие категории. Театр возглавляет директор, в функции которого входят контроль за постановками спектаклей, утверждение pепеpтуаpа, принятие на работу новых служащих, приглашение актеров и постановщиков. Актеры, музыканты и постановщики, работающие в театре, могут уезжать на гастроли. Актеры театра могут иметь звания заслуженных и народных артистов, могут быть лауреатами конкурсов. Также актерами театра могут быть и студенты театральных училищ. Каждый актер имеет свои вокальные и внешние данные (пол, возраст, голос, pост и т.п.), которые могут подходить для каких-то pолей, а для каких-то нет (не всегда женщина может сыграть мужчину и наоборот). Для постановки любого спектакля необходимо подобрать актеров на роли и дублеров на каждую главную pоль. Естественно, что один и тот же актер не может играть более одной pоли в спектакле, но может играть несколько pолей в различных спектаклях. У спектакля также имеется pежисеp-постановщик, художник-постановщик, диpижеp- постановщик, автор. Спектакли можно подразделить по жанрам: музыкальная комедия, трагедия, оперетта и пр. С другой стороны, спектакли можно подразделить на детские, молодежные и пр. В pепеpтуаpе театра указывается какие спектакли, в какие дни и в какое время будут проходить, а также даты пpемьеp. В кассах театра можно заранее приобрести билеты или абонемент на любые спектакли. Абонемент обычно включает в себя билеты на спектакли либо конкретного автора, либо конкретного жанра. Цена билетов зависит от места, и спектакля. На премьеры билеты дороже. Администрацией театра фиксируется количество проданных билетов на каждый спектакль.
Рисунок 1 - Схема БД
Для начала просмотрим всех пользователей БД. Выберем системную схему БД - mysql и изучим содержимое таблицы user:
Также с помощью запроса можно просмотреть список привилегий, присутствующих в БД:
Также можно просмотреть список привилегий по доступу к таблицам БД:
Также можно просмотреть список привилегий по доступу к БД:
Выполнил запрос по проверке привилегий по доступу к полям БД:
Создал пользователя:
create user 'user_selecter'@'localhost' identified by ‘secret';
Проверил то, что пользователь появился в таблице user:
Задал новому пользователю права на чтение записей из таблиц схемы БД - theatre
GRANT SELECT
ON `theatre`.*
TO 'user_selecter'@'localhost';
FLUSH PRIVILEGES;
Проверка того, что права у нового пользователя появились:
Изменение пароля пользователя:
ALTER USER 'user_selecter'@'localhost' IDENTIFIED BY ‘new_password';
Отзыв всех прав пользователя:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘user_selecter’@'localhost';
Проверка прав пользователя:
Удаление пользователя:
Просмотр всех пользователей БД:
Создал нового пользователя через клиент для работы с БД MySql - DBeaver
Далее выдал пользователю роль на чтение информации из всех таблиц схемы театра:
GRANT Select ON theatre.* TO ‘user_selecter'@'%';
В результате у пользователя появилась новая привилегия:
Результат просмотра привилегий пользователя:
Можно ввести пользователя, который будет заниматься наймом работников в театр и назначением им должностей и достижений. Пользователя назовем как worker_manager. Создание:
Таблица |
Список прав |
workers |
DELETE, UPDATE, INSERT, SELECT |
position_worker |
DELETE, UPDATE, INSERT, SELECT |
achievement |
DELETE, UPDATE, INSERT, SELECT |
achievement_worker |
DELETE, UPDATE, INSERT, SELECT |
Процедура
create_worker
add_positions_for_worker
Функция
add_achievement
Добавление прав к таблице workers:
GRANT Create ON theatre.achievements TO 'worker_manager'@'%'; GRANT Delete ON theatre.workers TO 'worker_manager'@'%'; GRANT Insert ON theatre.workers TO 'worker_manager'@'%'; GRANT Select ON theatre.workers TO 'worker_manager'@'%'; GRANT Update ON theatre.workers TO 'worker_manager'@'%';
Добавление прав к таблице position_worker:
GRANT Delete ON theatre.position_worker TO GRANT Insert ON theatre.position_worker TO GRANT Select ON theatre.position_worker TO GRANT Update ON theatre.position_worker TO
'worker_manager'@'%'; 'worker_manager'@'%'; 'worker_manager'@'%'; ‘worker_manager'@'%';
Добавление прав к таблице achievements:
GRANT Delete ON theatre.achievements TO 'worker_manager'@'%'; GRANT Insert ON theatre.achievements TO 'worker_manager'@'%'; GRANT Update ON theatre.achievements TO 'worker_manager'@'%'; GRANT Select ON theatre.achievements TO ‘worker_manager'@'%';
Добавление прав к таблице achievement_worker:
GRANT Delete ON theatre.achievement_worker TO 'worker_manager'@'%'; GRANT Insert ON theatre.achievement_worker TO 'worker_manager'@'%'; GRANT Select ON theatre.achievement_worker TO 'worker_manager'@'%'; GRANT Update ON theatre.achievement_worker TO 'worker_manager'@'%';
Выдача прав на вызов функции ADD_ACHIEVEMENT:
use theatre;
GRANT EXECUTE ON FUNCTION ADD_ACHIEVEMENT TO ‘worker_manager'@'%';
Выдача прав на вызов процедуры create_worker:
use theatre;
GRANT EXECUTE ON PROCEDURE create_worker TO ‘worker_manager'@'%';
Выдача прав на вызов процедуры add_positions_for_worker:
use theatre;
GRANT EXECUTE ON PROCEDURE add_positions_for_worker TO 'worker_manager'@'%';