Работа с базами данных и пользователями в MySQL и MariaDB

Краткая инструкция по созданию и удалению баз данных и пользователей в системе управления базами данных MySQL и MariaDB из консоли.

В первую очередь входим в консоль mysql под суперпользователем root

# mysql -u root -p

Работа с базами данных

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

SHOW DATABASES;

Для создания базы данных с именем new_db нужно воспользоваться командой

CREATE DATABASE new_db;

Чтобы удалить базу данных new_db, вводим команду

DROP DATABASE new_db;

Проверяем

SHOW DATABASES;

и база данных new_db в списке должна отстуствовать.

Работа с пользователями

Создать пользователя БД можно командой

CREATE USER 'dbuser'@'*' IDENTIFIED BY 'password';
  • dbuser — имя пользователя
  • * означает, что пользователь может подключиться удалённо (для того, чтобы пользователь мог подключиться только локально, необходимо заменить звёздочку на localhost)
  • password — пароль для этого пользователя

Изменить пароль существующему пользователю можно с помощью команды:

SET PASSWORD FOR 'dbuser'@'*' = PASSWORD('yourNewPassword');

Чтобы задать права пользователю dbuser на базу данных new_db, необходимо воспользоваться командой

GRANT ALL PRIVILEGES ON new_db.* TO 'dbuser'@'*';
FLUSH PRIVILEGES;

Теперь для того, чтобы подключиться с учётной записью пользователя dbuser, необходимо выйти из консоли mysql

EXIT;

и войти в неё уже пользователем dbuser

# mysql -u dbuser -p

Чтобы задать пользователю определённые права, их необходимо прописать через запятую вместо ALL. В СУБД MySQL и MariaDB существуют следующие права:

  • CREATE — создание БД и таблиц
  • SELECT — выборка данных
  • INSERT — добавление записей в таблицы
  • UPDATE — изменение/обновление существующих записей в таблицах
  • DELETE — удаление записей из таблиц
  • DROP — удаление таблиц и записей в них

Например:

GRANT SELECT, INSERT, UPDATE ON new_db.* TO 'dbuser'@'*';
FLUSH PRIVILEGES;

Чтобы создать пользователя с неограниченными правами (аналогично суперпользователя root), команду необходимо привести к следующему виду:

GRANT ALL PRIVILEGES ON *.* to 'dbuser'@'*';
FLUSH PRIVILEGES;

Чтобы отозвать права у пользователя, например, лишить его всех прав на базу данных new_db, необходимо запустить такую команду

REVOKE ALL PRIVILEGES ON new_db.* FROM 'dbuser'@'*';
FLUSH PRIVILEGES;

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

SHOW GRANTS FOR 'dbuser'@'*';

Удалить пользователя полностью можно командой

DROP USER 'dbuser'@'*';

Этот пользователь полностью исчезнет из всех баз данных, к которым он был привязан.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *