Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

5 СЕМЕСТР / ЛР / ЛР4 / ЛР_№4_БД_MySQL_Привилегии_с_примером

.pdf
Скачиваний:
7
Добавлен:
25.06.2023
Размер:
448.95 Кб
Скачать

Лабораторная работа № 4

Пользовательские привилегии

Цель работы: научиться использовать функции GRANT и REVOKE

для назначения и лишения привилегий.

Методические указания

Как из первой лабораторной работы уже известно, пользователей можно создавать не только через пользовательский интерфейс при установке сервера, но и при помощи инструкций CREATE и GRANT. При создании пользователя командой CREATE, ему автоматически присваивается привилегия USAGE, что является синонимом «без привилегий». Присвоение прав осуществляется инструкцией GRANT, упрощенный вид синтаксиса которой таков:

GRANT привилегия [(список_столбцов)] [, привилегия

[(список_столбцов)] ...]

ON {название_таблицы | * | *.* | название_бд.*}

TO пользователь [IDENTIFIED BY [PASSWORD] 'password'] [, пользователь [IDENTIFIED BY 'password'] ...]

[WITH [GRANT OPTION]]

Примечание: при помощи GRANT можно передавать только те привилегии, которые есть у самого пользователя.

Для лишения пользователей привилегий используется функция

REVOKE, синтаксис которой похож на синтаксис GRANT:

REVOKE привилегия [(список_столбцов)] [, привилегия

[(список_столбцов)] ...]

ON {название_таблицы | * | *.* | название_бд.*}

FROM пользователь [, пользователь ...]

Типы привилегий:

 

 

 

Название

Разрешаемые инструкции

 

 

 

 

ALL [PRIVILEGES]

 

 

Все простые привилегии

 

 

кроме WITH GRANT OPTION

 

 

 

 

 

 

 

 

 

 

 

ALTER

 

 

ALTER TABLE

 

 

 

 

 

 

 

 

CREATE

 

 

CREATE TABLE

 

 

 

 

 

 

 

 

DELETE

 

 

DELETE

 

 

 

 

 

 

 

 

DROP

 

 

DROP TABLE.

 

 

 

 

 

 

 

 

INSERT

 

 

INSERT

 

 

 

 

 

 

 

 

SELECT

 

 

SELECT

 

 

 

 

 

 

 

 

UPDATE

 

 

UPDATE

 

 

 

 

 

 

 

 

USAGE

 

 

Синоним для «без привилегий'».

 

 

 

 

 

 

 

 

Пример.

Необходимо создать пользователя user2, назначить ему все привилегии

для всех таблиц и баз данных, просмотреть их в таблице прав всех

пользователей, а

затем

отнять

у него данные

привилегии.

CREATE

USER ‘user2’ IDENTIFIED BY ‘2222’;

//создание

пользователя user2 с паролем «2222»

 

 

GRANT

ALL ON

*.* TO

user2 WITH GRANT OPTION;

//присвоение пользователю user2 всех привилегий во всех БД и таблицах,

включая привилегию GRANT

USE mysql; //вход в БД MySQL

SELECT * FROM user; //просмотр информации о пользователях сервера, и их привилегиях.

REVOKE ALL PRIVILEGES ON *.* FROM ‘user2’; //лишение user2

всех привилегий, данных функцией GRANT

Порядок выполнения работы.

1.Создать на MySQL-сервере пользователя и назначить ему администраторские привилегии.

2.Создать соединение этого пользователя с сервером в Workbench.

3.Через диалоговое окно Workbench создать пользователя без привилегий.

4.Посмотреть список прав созданных ранее пользователей.

5.Удалить привилегии созданного в п.1. пользователя через MySQL-

сервер.

6.Передать этому же пользователю привилегии для работы с таблицами через Workbench.

Содержание отчета

1.Цель работы.

2.Описание предметной области.

3.Ход работы с пояснениями.

4.Скриншоты каждого пункта порядка выполнения работы.

5.Выводы.

Вопросы для самопроверки.

1)Можно ли функцией GRANT создать пользователя?

2)Все ли привилегии входят в команду ALL (PRIVILEGES)?

3)Что прописывается при необходимости в команде GRANT вместо *.*?

4)В чем разница между root-пользователем и администратором базы данных?

5)Что означает предложение WITH GRANT OPTION?

Пример выполнения

Цель работы: научиться использовать функции GRANT и REVOKE для назначения и лишения привилегий.

Ход работы:

1.Создали на MySQL-сервере пользователя и назначить ему администраторские привилегии.

2.Создали соединение этого пользователя с сервером в Workbench.

3.Через диалоговое окно Workbench создали пользователя без привилегий.

4.Посмотрели список прав созданных ранее пользователей.

5.Удалили привилегии созданного в п.1. пользователя через MySQL-

сервер.

Соседние файлы в папке ЛР4