MySQL — это программное обеспечение для управления базами данных с открытым исходным кодом, которое помогает пользователям хранить, организовывать и в будущем получать данные. MySQL обладает множеством возможностей предоставления конкретным пользователям детализированных прав для работы с таблицами и базами данных. В этом руководстве мы кратко расскажем о ряде из этих возможностей.
В этом руководстве любые строки, которые пользователь должен ввести или изменить, будут выделены цветом! Весь остальной текст можно просто скопировать и вставить.
В части 1 руководства по работе с MySQL мы воспользовались всеми возможностями для редактирования в MySQL с помощью пользователя с правами root, обладающего полным доступом ко всем базам данных. Однако для тех случаев, когда нам могут потребоваться дополнительные ограничения, существует возможность создания пользователей с настраиваемыми правами.
Давайте начнем с создания нового пользователя внутри оболочки MySQL:
- CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Примечание: при добавлении пользователей в оболочке MySQL в данном руководстве мы будем в качестве хоста пользователя использовать localhost
, а не IP-адрес сервера. localhost
— это имя хоста, которое означает «этот компьютер», и MySQL работает с этим именем хоста особенным образом: когда пользователь на данном хосте выполняет вход в MySQL, СУБД будет пытаться подключиться к локальному серверу, используя файл сокета Unix. Таким образом, localhost
обычно используется, если вы планируете подключение к вашему серверу через SSH или если вы запускаете локальный клиент mysql
для подключения к локальному серверу MySQL.
В данный момент newuser не имеет прав на выполнение каких-либо действий с базами данных. Фактически, даже если newuser попытается выполнить вход (с помощью пароля password), он не сможет получить доступ к оболочке MySQL.
Таким образом, первое, что необходимо сделать, — это предоставить пользователю доступ к необходимой ему информации.
- GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
Звездочки в этой команде обозначают базу данных и таблицу (соответственно), к которым пользователь может получить доступ. Эта конкретная команда позволяет пользователю читать, редактировать, запускать и выполнять любые задачи для всех баз данных и таблиц.
Обратите внимание, что в этом примере мы предоставляем newuser полный корневой доступ ко всему содержанию нашей базы данных. Хотя это может быть полезно для объяснения некоторых концепций MySQL, в большинстве случаев это может быть нецелесообразно и может отрицательно сказаться на безопасности вашей базы данных.
После того как вы определились с правами, которые вы хотите предоставить вашему новому пользователю, необходимо будет во всех случаях перезагрузить все привилегии.
- FLUSH PRIVILEGES;
После этого внесенные вами изменения вступят в силу.
Ниже представлен короткий список других часто используемых прав, которые могут предоставляться пользователям.
SELECT
для чтения данных из базыЧтобы предоставить конкретному пользователю какое-либо право, вы можете использовать следующую структуру команды:
- GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';
Если вы хотите предоставить пользователю доступ к любой базе данных или любой таблице, необходимо поместить звездочку (*) на место имени базы данных или имени таблицы.
При каждом обновлении или изменении права необходимо использовать команду сброса привилегий.
Если вам требуется отозвать какое-либо право, структура команды будет практически идентична структуре команды, используемой для предоставления права:
- REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';
Обратите внимание, что при отзыве прав синтаксис требует использования элемента FROM
вместо элемента TO
, который мы использовали при предоставлении прав.
Вы можете просмотреть текущие права пользователя с помощью следующей команды:
- SHOW GRANTS FOR 'username'@'localhost';
Так же как вы можете удалять базы данных с помощью DROP, вы можете использовать DROP для полного удаления пользователя:
- DROP USER 'username'@'localhost';
Чтобы протестировать вашего нового пользователя, выполните выход, введя следующую команду:
- quit
а затем войдите снова, введя следующую команду в терминале:
- mysql -u [username] -p
После прохождения этого руководства у вас должно появиться понимание того, как добавлять новых пользователей и предоставлять им различные права для работы с базой данных MySQL. Теперь вы можете продолжать изучение и эксперименты с различными конфигурациями прав для вашей базы данных или узнать больше о некоторых продвинутых конфигурациях MySQL.
Если вы хотите узнать больше об основах работы с MySQL, мы рекомендуем вам ознакомиться со следующими обучающими материалами:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Статья очень аккуратно оформлена, что очень радует глаза. За короткий промежуток времени освоил и применил на практике необходимую информацию.
Спасибо большое!
И позвольте предложить добавить к статье пару команд, которые наглядно продемонстрируют результат выполненных инструкций:
Соответственно интересно пронаблюдать значения “до” и “после”.
С уважением, Павел Третьяков.
Спасибо, это просто лучшая статья которую я нашел, и не просто лучшая, а такая, которая доносит суть вещей… Сейчас бы еще часа 2 парился понимаю других.
Спасибо большое…
послушай у тебя талант к простоте и точности лаконичности большая просьба сделай туториал по mysql создание и управление. спасибо за работу.