Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Команды управления правами доступа

Создание нового пользователя

Полный доступ ко всем базам данных может быть только у администратора СУБД. Всех остальных пользователей нужно создавать специальной командой и наделять их правами, имеющими те или иные ограничения. Для создания нового пользователя используется команда CREATE USER, имеющая следующий синтаксис:

Пример 1

Например, чтобы создать пользователя «operator» с паролем «123456» нужно написать команду:

CREATE USER 'operator'@'localhost' IDENTIFIED BY '123456';

Для удаления пользователя используется команда DROP USER со следующим синтаксисом:

Пример 2

Чтобы удалить пользователя operator, нужно написать команду

DROP USER 'operator'@'localhost';

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

Пока администратор не даст пользователю особые права, которые называются привилегиями, пользователь operator не может делать с базами данных никаких действий. Для наделения пользователя привилегиями используется команда GRANT.

Существуют следующие типы привилегий:

  • ALL PRIVILEGES – наделяет пользователя всеми правами администратора;
  • CREATE - дает пользователю право создавать новые таблицы или базы данных;
  • ALTER – позволяет переименовывать таблицы и менять их структуру;
  • FILE - позволяет делать запрос и записывать его результат в файл;
  • DROP - позволяет удалять таблицы или базы данных;
  • DELETE - позволяет удалять данные в таблицах;
  • INSERT - позволяет добавлять новые данные в таблицы;
  • SELECT - позволяет строить запросы для отбора данных по различным критериям;
  • INDEX – дает право создавать индексы;
  • LOCK TABLES дает право блокировать таблицы;
  • UPDATE – позволяет редактировать данные, которые уже записаны;
  • GRANT OPTION – позволяет давать или удалять привилегии другим пользователям.
  • CREATE ROUTINE – дает право создавать хранимые процедуры;
  • ALTER ROUTINE – дает право редактировать хранимые процедуры;
«Команды управления правами доступа» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Привилегии даются в рамках таблицы или в рамках базы данных.

Если необходимо дать привилегии в рамках всех таблиц некоторой базы данных, то вместо имени таблицы ставится символ *:

GRANT тип_привилегии ON имя_БД.* TO 'пользователь'@'localhost';

Если необходимо дать привилегии в рамках всех баз данных, работающих под управлением данной СУБД, то команда будет такой:

GRANT тип_привилегии ON * TO ‘пользователь’@’localhost’;

Пример 3

Пусть необходимо разрешить пользователю operator добавлять данные о новых абитуриентах в таблицу abiturient базы данных priem. А также разрешить ему выполнять запросы к этой таблице. Тогда команда будет выглядеть так:

GRANT INSERT, SETLECT ON priem.abiturient TO ‘operator’@’localhost’;

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

Пример 4

Например, чтобы запретить пользователю operator делать запросы к базе данных priem, нужно выполнить команду:

REVOKE SELECT ON priem.* FROM ‘operator’@’localhost’;

Шифрование паролей

При использовании графического интерфейса к СУБД ввод команд с клавиатуры можно во многих случаях заменить заполнением форм. В графической оболочке HeidiSQL к СУБД MySQL команды создания пользователя operator с паролем '123456' и наделения его привилегиями будут выглядеть, как показано на следующем рисунке:

На рисунке видно, что в момент выполнения команды пароль пользователя сразу же шифруется и записывается в базу данных в зашифрованном виде. Исходный пароль в базе не хранится. Каждый раз при входе в СУБД пользователь operator вводит свой пароль ‘123456’. Введенная строка снова шифруется,а результат сравнивается с зашифрованным паролем, хранящимся в базе. В случае совпадения авторизация считается успешной. Это делается для того, чтобы даже администратор, имеющий полный доступ ко всем базам данных, не мог совершить вход в СУБД под чужим профилем. Восстановить из зашифрованного пароля исходный пароль практически невозможно.

Дата написания статьи: 07.08.2016
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot