Лабораторная работа № 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-
сервер.