Создать пользователя mysql ubuntu

Обновлено: 03.07.2024

MySQL – это популярная система управления реляционными базами данных с открытым исходным кодом. Вы можете создавать учетные записи пользователей MySQL и предоставлять права доступа. На основе привилегии доступа пользователь сможет использовать базу данных и управлять ею. Процесс создания пользователя MySQL и установки его пароля в операционной системе Windows довольно прост. Однако, если вы пользователь Linux, то шаги будут другими. Здесь вам придется сделать это из командной строки. Но не волнуйтесь, сегодня в этом посте вы сможете узнать, как создать пользователя MySQL в Ubuntu 20.04. Кроме того, я покажу вам, как установить пароль для пользователей MySQL. Еще одна важная вещь — предоставить все привилегии пользователям MySQL.

Предпосылки

Чтобы приступить к созданию пользователя MySQL в Ubuntu 20.04, я предполагаю, что вы готовы выполнить следующие требования:

  • Ubuntu 20.04.2 LTS (как операционная система)
  • Пользователь Ubuntu с привилегиями Sudo
  • Терминал и доступ к командной строке
  • Сервер базы данных MySQL или Maria

Если вы не установили сервер MySQL в Ubuntu, вы можете продолжить мой предыдущий пост о настройке стека LAMP в Ubuntu.

Создать пользователя MySQL в Ubuntu

Во-первых, я проверю текущую версию MySQL с помощью приведенной ниже команды. Это гарантирует, что сервер MySQL будет установлен в моей системе.

Здесь в результате видно, что MySQL 8 уже установлен в моей системе.

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

Если вы уже установили пароль пользователя root, приведенная выше команда запросит пароль. После подключения к MySQL вы окажетесь внутри командной строки MySQL.

В приведенной выше команде вам нужно будет заменить new_user фактическим пользователем. А также new_user_password с паролем, который вы хотите установить. Эта команда создаст нового пользователя с указанным паролем. Здесь для хоста я установил localhost. Это означает, что пользователь сможет подключиться к серверу MySQL только с локального хоста. (т.е. из системы, где работает сервер MySQL).

На следующем шаге я покажу вам, как настроить доступ с другого хоста.

Предоставить доступ с другого хоста в MySQL

Чтобы установить доступ с другого хоста к пользователю, вам нужно будет передать IP-адрес удаленного компьютера. Предположим, у вас есть IP-адрес удаленной машины 10.6.0.1. Здесь вы должны передать этот IP-адрес, как показано ниже.

Итак, здесь он предоставит этому пользователю доступ для введенного IP-адреса вместо локального хоста.

Предоставить доступ с любого хоста в MySQL

В случае, если вы не хотите устанавливать привилегию для какого-либо конкретного хоста, вы можете установить глобальный хост. Здесь глобальный хост означает любой хост. Итак, здесь вам нужно будет передать подстановочный знак «%». Давайте посмотрим.

Создать пользователя MySQL с зашифрованным паролем

Необходимо зашифровать пароль пользователя MySQL. Таким образом, это хорошо из соображений безопасности. Для шифрования пароля мы будем использовать caching_sha2_password. Он зашифрует пароль.

Список всех пользователей в MySQL

Если вы хотите получить всех пользователей в MySQL, вы можете нажать приведенную ниже команду.

Как видите, здесь перечислены все пользователи.

Список пользователей с паролем в MySQL

Вместо того, чтобы получать только пользователей в MySQL, вы можете проверить пароль, который вы уже установили при его создании. Итак, просто добавьте еще несколько параметров в ту же команду.

В приведенном ниже результате вы можете увидеть список пользователей со строкой аутентификации. Если вы установите шифрование пароля, результат будет таким, как показано ниже.

Список пользователей, паролей, хостов и подключаемых модулей в MySQL

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

Здесь приведенная выше команда вернула результат с указанными аргументами.

Предоставить все права пользователю MySQL

Прежде чем предоставить привилегии пользователю MySQL, во-первых, давайте разберемся с типом привилегий. В MySQL это следующие привилегии.

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

Приведенная выше команда предоставит все привилегии указанному пользователю. Здесь я определил «*» для типа привилегий. Таким образом, он будет учитывать все привилегии. Вы можете определить конкретные привилегии из приведенного выше списка.

Итог

Наконец мы создали учетную запись пользователя MySQL с паролем. В пароле мы использовали как зашифрованные, так и не зашифрованные. Кроме того, мы видели учетную запись пользователя для любого конкретного хоста. Мы сверили список пользователей с другими деталями. Наконец, мы предоставили привилегии созданной учетной записи пользователя. Итак, я надеюсь, что вы легко поймете эти шаги.

MySQL – это система управления реляционными базами данных с открытым исходным кодом. Обычно она развертывается как часть стека LAMP (что означает Linux, Apache, MySQL и PHP) и на момент написания этой статьи является самой популярной в мире базой данных с открытым исходным кодом.< /p>

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

Предпосылки

Чтобы следовать этому руководству, вам потребуется доступ к базе данных MySQL. В этом руководстве предполагается, что эта база данных установлена ​​на виртуальном частном сервере под управлением Ubuntu 20.04, хотя изложенные в нем принципы должны применяться независимо от того, как вы получаете доступ к базе данных.

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

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

Обратите внимание, что любые части примеров команд, которые вам нужно изменить или настроить, будут выделены таким образом в этом руководстве.

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

После установки MySQL создает учетную запись пользователя root, которую вы можете использовать для управления своей базой данных. Этот пользователь имеет полные привилегии над сервером MySQL, что означает, что он имеет полный контроль над каждой базой данных, таблицей, пользователем и так далее. Из-за этого лучше избегать использования этой учетной записи вне административных функций. Этот шаг описывает, как использовать пользователя root MySQL для создания новой учетной записи пользователя и предоставления ему привилегий.

В системах Ubuntu, работающих под управлением MySQL 5.7 (и более поздних версий), пользователь root MySQL по умолчанию настроен на аутентификацию с помощью подключаемого модуля auth_socket, а не с помощью пароля. Этот подключаемый модуль требует, чтобы имя пользователя операционной системы, вызывающего клиент MySQL, совпадало с именем пользователя MySQL, указанным в команде. Это означает, что вам нужно предварить команду mysql sudo, чтобы вызвать ее с привилегиями пользователя root Ubuntu, чтобы получить доступ к пользователю root MySQL:

Примечание. Если ваш root-пользователь MySQL настроен на аутентификацию с помощью пароля, вам потребуется использовать другую команду для доступа к оболочке MySQL. Следующее запустит ваш клиент MySQL с правами обычного пользователя, и вы получите права администратора в базе данных, только пройдя аутентификацию с правильным паролем:

Получив доступ к приглашению MySQL, вы можете создать нового пользователя с помощью инструкции CREATE USER. Они следуют этому общему синтаксису:

После CREATE USER вы указываете имя пользователя. Сразу после этого следует знак @, а затем имя хоста, с которого будет подключаться этот пользователь. Если вы планируете обращаться к этому пользователю только локально с вашего сервера Ubuntu, вы можете указать localhost . Заключение имени пользователя и хоста в одинарные кавычки не всегда необходимо, но это может помочь предотвратить ошибки.

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

В качестве альтернативы вы можете полностью исключить часть синтаксиса WITH authentication_plugin, чтобы пользователь аутентифицировался с помощью подключаемого модуля MySQL по умолчанию, caching_sha2_password . Документация MySQL рекомендует этот подключаемый модуль для пользователей, которые хотят входить в систему с паролем из-за его надежных функций безопасности.

Выполните следующую команду, чтобы создать пользователя, который проходит аутентификацию с помощью caching_sha2_password . Не забудьте изменить sammy на предпочитаемое вами имя пользователя и пароль на надежный пароль по вашему выбору:

Примечание. В некоторых версиях PHP существует известная проблема, вызывающая проблемы с caching_sha2_password . Если вы планируете использовать эту базу данных с приложением PHP — например, phpMyAdmin — вы можете создать пользователя, который будет аутентифицироваться с помощью старого, хотя и безопасного плагина mysql_native_password:

Если вы не уверены, вы всегда можете создать пользователя, который проходит аутентификацию с помощью caching_sha2_plugin, а затем ИЗМЕНИТЬ его позже с помощью этой команды:

После создания нового пользователя вы можете предоставить ему соответствующие права.

Предоставление разрешений пользователю

Общий синтаксис предоставления привилегий пользователя следующий:

Значение PRIVILEGE в синтаксисе этого примера определяет, какие действия разрешено выполнять пользователю с указанной базой данных и таблицей. Вы можете предоставить несколько привилегий одному и тому же пользователю в одной команде, разделяя их запятой. Вы также можете предоставить пользователю глобальные привилегии, введя звездочки ( * ) вместо имен баз данных и таблиц. В SQL звездочки — это специальные символы, используемые для представления «всех» баз данных или таблиц.

Для иллюстрации следующая команда предоставляет пользователю глобальные привилегии CREATE , ALTER и DROP баз данных, таблиц и пользователей, а также право INSERT , UPDATE и DELETE данных из любой таблицы на сервере. Он также предоставляет пользователю возможность запрашивать данные с помощью SELECT , создавать внешние ключи с помощью ключевого слова REFERENCES и выполнять операции FLUSH с привилегией RELOAD. Тем не менее, вы должны предоставлять пользователям только те разрешения, которые им нужны, поэтому не стесняйтесь настраивать свои собственные привилегии пользователя по мере необходимости.

Вы можете найти полный список доступных привилегий в официальной документации MySQL.

Выполните этот оператор GRANT, заменив sammy своим собственным именем пользователя MySQL, чтобы предоставить следующие привилегии вашему пользователю:

Обратите внимание, что это утверждение также включает WITH GRANT OPTION . Это позволит вашему пользователю MySQL предоставлять любые разрешения, которые у него есть, другим пользователям в системе.

Предупреждение. Некоторые пользователи могут захотеть предоставить своим пользователям MySQL привилегию ALL PRIVILEGES, которая предоставит им широкие привилегии суперпользователя, аналогичные привилегиям пользователя root, например:

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

Во многих руководствах предлагается запускать команду FLUSH PRIVILEGES сразу после инструкции CREATE USER или GRANT, чтобы перезагрузить таблицы привилегий и убедиться, что новые привилегии вступили в силу:

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

Если вам нужно отозвать разрешение, структура почти идентична его предоставлению:

Обратите внимание, что при отзыве разрешений синтаксис требует, чтобы вы использовали FROM , а не TO, который вы использовали при предоставлении разрешений.

Вы можете просмотреть текущие разрешения пользователя, выполнив команду SHOW GRANTS:

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

После создания пользователя MySQL и предоставления ему привилегий вы можете выйти из клиента MySQL:

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

Флаг -p заставит клиент MySQL запросить у вас пароль пользователя MySQL для аутентификации.

Заключение

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

Дополнительную информацию об основах MySQL вы можете найти в следующих руководствах:

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

MySQL – это приложение базы данных для Linux, входящее в состав популярного стека LAMP (Linux, Apache, MySQL, PHP). Установка MySQL включает в себя варианты управления с помощью пользователя root или определенных учетных записей пользователей.

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

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

учебник по mysql создать пользователя и предоставить привилегии

  • Сервер Linux с установленной и работающей базой данных MySQL или MariaDB
  • Доступ к учетным данным корневого пользователя MySQL
  • Доступ к окну/командной строке терминала (Ctrl-Alt-T / Ctrl-Alt-F2)

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

<р>1. Прежде чем вы сможете создать нового пользователя MySQL, вам нужно открыть окно терминала и запустить оболочку MySQL от имени пользователя root. Для этого введите следующую команду:

<р>2. Введите пароль root для этой учетной записи и нажмите Enter.

 ввод пароля root в MySQL

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

<р>3. Затем создайте нового пользователя MySQL с помощью:

Замените имя пользователя и пароль на имя пользователя и пароль по вашему выбору.

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

  • Если вы работаете на компьютере с MySQL, используйте [email protected] для определения пользователя.
  • Если вы подключаетесь удаленно, используйте [email protected]_address и замените ip_address фактическим адресом удаленной системы, на которой размещена MySQL.

Поэтому команда будет такой:

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

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

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

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

Разрешения — это действия, которые пользователю разрешено выполнять в базе данных. В зависимости от того, какими полномочиями вы хотите наделить своего пользователя, вы можете предоставить ему одну, несколько или все следующие привилегии:

  • Все привилегии: учетная запись пользователя имеет полный доступ к базе данных.
  • Вставка: пользователь может вставлять строки в таблицы.
  • Удалить: пользователь может удалять строки из таблиц.
  • Создать. Пользователь может создавать совершенно новые таблицы и базы данных.
  • Удалить: пользователь может удалить (удалить) целые таблицы и базы данных.
  • Выбор: пользователь получает доступ к команде выбора для чтения информации в базах данных.
  • Обновление: пользователь может обновлять строки таблицы
  • Вариант предоставления: пользователь может изменять другие привилегии учетной записи пользователя.

Основной синтаксис, используемый для предоставления привилегий учетной записи пользователя:

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

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

Если вы хотите ограничить доступ пользователя к определенной базе данных, укажите имя этой базы данных перед точкой. Точно так же вы можете ограничить доступ пользователя к определенной таблице, назвав ее после точки, как в приведенной ниже команде:

Управление пользователями MySQL

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

Как получить список привилегий учетной записи пользователя MySQL

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

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

Как предоставить все права доступа к базе данных в MySQL

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

Однако вы также можете предоставить все привилегии учетной записи пользователя в определенной базе данных с помощью следующей команды:

Чтобы предоставить все привилегии учетной записи пользователя над определенной таблицей из типа базы данных:

Отозвать привилегии учетной записи пользователя MySQL

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

Удалить всю учетную запись пользователя

Теперь вы должны иметь возможность создавать, изменять, удалять пользователей и предоставлять разрешения в базе данных MySQL.

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

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

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

Эта короткая статья посвящена созданию нового пользователя и предоставлению ему прав на базу данных. Даже если в этой статье упоминается только MySQL, все команды могут быть переданы в MariaDB один к одному.

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

Сначала запустите консоль MySQL. Откройте терминал (например, PuTTY или XTerm) и подключитесь к серверу с вашей установкой MySQL. Мы используем пользователя «root» в вашей установке MySQL.Если вы предоставляете пользователю пароль, используйте следующую команду:

После этого вам будет предложено ввести пароль. После ввода вы должны увидеть приглашение MySQL. Если вы не установили пароль, сделайте это без параметра ‘-p’, и вас не будут спрашивать о пароле.

Создать нового пользователя сравнительно просто. Просто замените значения «пользователь» и «пароль» в следующей команде:

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

А теперь предоставьте вашему новому пользователю все права на эту базу данных. Замените значение «пользователь» своим именем пользователя:

Краткое объяснение приведенных выше команд:

– ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ: назначаются все доступные привилегии (права). Также есть ограниченные привилегии, об этом позже.
– ON ‘myDB’ . * : Указывает области, которым должны быть назначены права. Также возможно ‘*. * «Чтобы предоставить пользователю, например, все права или ограничение на отдельные таблицы базы данных, например. «Моя БД». «Мой стол» «.
– TO «user» @ «localhost»: это пользователь, который получит эти права.

MySQL обычно хранит права доступа пользователя в памяти, поэтому медленные операции ввода-вывода не должны выполняться каждый раз, когда пользователь входит в базу данных. Для обновления копии привилегий в памяти необходимо выполнить команду:

один раз после каждого изменения. Если вы забудете команду, возможно, вы еще не можете зарегистрироваться с новыми (или измененными) данными доступа к серверу базы данных.

Больше привилегий в MySQL

Помимо «ВСЕХ ПРИВИЛЕГИЙ», использованных выше, вы также можете назначить другие наборы привилегий пользователю на вашем сервере MySQL. Вот, например:

  • ВСЕ ПРИВИЛЕГИИ: подстановочный знак для всех прав на выбранный объект базы данных или — с *. * – ко всем базам данных
    CREATE: позволяет пользователю создавать новые базы данных
    DROP: позволяет пользователю удалять базы данных
    DELETE: позволяет пользователю удалять отдельные строки в таблице
    INSERT: позволяет пользователю создавать новые строки в таблице
    SELECT: разрешения на чтение для базы данных или таблицы
    FIX: разрешение на обновление строки
    GRANT OPTION: позволяет пользователю устанавливать или отзывать права других пользователей

Точный синтаксис очень хорошо описан в документации MySQL. Вы найдете его здесь.

Удаление пользователя в MySQL

Так же легко можно удалить пользователя. Используйте следующую команду:

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

Читайте также: