Поиск по сайту:

Как создать нового пользователя и предоставить разрешения в MySQL


MySQL – это популярная и широко используемая система управления базами данных, которая хранит и систематизирует данные, а также позволяет пользователям извлекать их. Он поставляется с огромным набором опций, которые предоставляют пользователям определенные разрешения для таблиц и баз данных.

В этом руководстве вы узнаете, как создать нового пользователя и предоставить разрешения в базе данных MySQL.

Как создать нового пользователя в MySQL

Чтобы создать нового пользователя, сначала войдите в оболочку MySQL.

sudo mysql -u root -p

Введите пароль sudo, а затем пароль, указанный при настройке базы данных MySQL, и нажмите ENTER. После этого вы получите это приглашение.

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

MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

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

MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';

Несколько моментов, которые следует иметь в виду

При локальном добавлении пользователя, т. е. в системе, где вы установили MySQL, хост пользователя указывается как localhost, а не IP-адрес. Ключевое слово «localhost» переводится как «этот компьютер», и MySQL обрабатывает его уникально. По сути, localhost используется клиентом MySQL для установления соединения с локально установленным сервером базы данных MySQL.

На данный момент пользователь tecmint не имеет никаких разрешений на взаимодействие с базами данных. Фактически пользователь не может даже получить доступ к оболочке MySQL.

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

MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';

В приведенной выше команде звездочки указывают на базу данных и таблицу соответственно, к которым пользователь может получить доступ. Он предоставляет пользователю все права в базе данных – чтение, запись, редактирование и выполнение, включая выполнение всех задачи в других базах данных и таблицах.

На данный момент мы предоставили пользователю полный доступ к базе данных. Хотя это удобно для объяснения концепций MySQL, обычно это не рекомендуется, поскольку это может представлять угрозу безопасности ваших баз данных. Просто подумайте, что может случиться, если хакер завладеет паролем пользователя. Мы продолжим и обсудим, как назначить определенные разрешения, в следующем разделе.

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

MariaDB [none]> FLUSH PRIVILEGES

Как предоставить различные разрешения пользователям

Вот разбивка возможных разрешений, которые вы можете предоставить пользователям:

  • ВСЕ ПРИВИЛЕГИИ. Как было замечено ранее, это предоставляет пользователю MySQL полный доступ к определенной базе данных.
  • CREATE – позволяет пользователям создавать новые базы данных или таблицы.
  • DROP – позволяет пользователям удалять базы данных или пользователей.
  • INSERT – позволяет пользователям вставлять строки в таблицы.
  • DELETE – позволяет пользователям удалять строки из таблиц.
  • SELECT — с разрешением «SELECT» пользователи могут читать содержимое таблицы.
  • ОБНОВЛЕНИЕ – позволяет пользователям обновлять строки в таблице.
  • GRANT OPTION – пользователи могут предоставлять или удалять привилегии других пользователей.

Чтобы предоставить конкретному пользователю разрешение, используйте синтаксис:

MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';

Кроме того, вы можете назначить разрешения для всех таблиц в базе данных с помощью одного символа звездочки, как показано:

MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';

Например, чтобы назначить разрешения SELECT пользователю tecmint во всех таблицах базы данных testdb, выполните команду.

MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';

Затем сбросьте привилегии, чтобы изменения вступили в силу.

MariaDB [none]> FLUSH PRIVILEGES;

Кроме того, вы можете одновременно назначить несколько разрешений, разделив их запятой, как показано.

MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';

Как отозвать разрешения MySQL

Чтобы отозвать разрешения у пользователя, используйте синтаксис:

MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';

Например, чтобы отозвать разрешения INSERT у пользователя «tecmint», выполните команду.

MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES

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

MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';

Из приведенного ниже вывода мы видим, что разрешение INSERT было удалено у пользователя «tecmint», остались только SELECT и UPDATE. права на базу данных testdb.

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

MariaDB [none]> quit;

Затем снова войдите в систему.

sudo mysql -u tecmint -p

Введите пароль пользователя и нажмите ENTER, чтобы получить доступ к оболочке.

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

MariaDB [none]> DROP USER 'username'@'localhost';

Возможно, вам также будет интересно прочитать следующие статьи, связанные с MySQL:

  • Полезные советы по устранению распространенных ошибок в MySQL
  • Mytop — полезный инструмент для мониторинга производительности MySQL/MariaDB в Linux
  • Как изменить порт MySQL/MariaDB по умолчанию в Linux
  • Как сбросить корневой пароль MySQL или MariaDB в Linux
Заключение

Надеемся, что теперь вы можете создавать пользователей на своих серверах баз данных MySQL и с легкостью назначать или отзывать разрешения.