Как создать пользователя в phpmyadmin
Перейти к содержимому

Как создать пользователя в phpmyadmin

  • автор:

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

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

Эта инструкция — часть курса «MySQL для новичков».

Смотреть весь курс

Введение

В статье речь пойдет о работе с пользователями открытой реляционной системы управления базами данных (СУБД) MySQL, появившейся в 1994 году. В 2008 году Sun Microsystems купил MySQL AB, а в 2010 уже Sun была поглощена Oracle. Эти продажи побудили авторов исходной СУБД создать форк — MariaDB, свободный от лицензионных ограничений текущего владельца и совместимый с Oracle MySQL. Помимо «Марии» известен другой форк, Percona, — от Петра Зайцева и Вадима Ткаченко. Оба форка совместимы с MySQL.

БД от Percona обладает дополнительными функциями, направленными на повышение производительности. Многие дистрибутивы (например, Red Hat) перешли на MariaDB из-за предсказуемой лицензионной политики. В своих проектах автор использует MariaDB.

Есть несколько способов работы с БД MySQL: через графические phpMyAdmin, MySQL WorkBench и т.д.

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

Для этого понадобится минимум — консольный клиент mysql. Запускать его можно на своей рабочей станции (mysql —host= [—user=] [—password=] [database]) или через ssh на самом сервере (в случае ОС Linux).

Зачем нужны пользователи

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

Администратору MariaDB в работе требуется создавать учетные записи «обычных» пользователей с ограниченным доступом к данным, определять права доступа, при необходимости — создавать дополнительных (привилегированных) суперпользователей. Также важно проводить аудит — просматривать выданные полномочия и корректировать их по мере необходимости.

Пользователи MySQL

Имя пользователя MySQL

В MySQL имя пользователя состоит из 2-х частей: имени пользователя (обязательно) и хоста (может быть опущена, тогда она означает ‘%’):

‘someuser’@’somehost’, аналогично, почтовому адресу.

Поняв это правило, посмотрим, как по умолчанию выглядит суперпользователь. На самом деле полностью учетка записывается трижды: ‘root’@’localhost’, ‘root’@’127.0.0.1’ и ‘root’@’::1’ с одинаковым парольным хешем.

В хостовой части могут использоваться DNS-имена, IP-адреса и символ подстановки %, обозначающий любой (любые) символы.

Примеры записи хоста:

somehost.example.com localhost 127.0.0.1 ::1 192.168.123.% 192.168.123.0/255.255.255.0 %

Примечание: имена и адреса следует указывать в том формате, в каком возвращает системный DNS resolver сервера.

Просмотр всех пользователей

Давайте проверим, какие пользователи есть в нашей БД. Выведем основную информацию о пользователях:

SELECT host, user, password, password_expired FROM mysql.user;

Когда список получается большим, мы можем добавить фильтр (в примере — по хостам, начинающимся с msk):

SELECT host, user, password FROM mysql.user WHERE host LIKE 'msk%';

Или использовать в конце модификатор \G, оптимизирующий вывод для отображения в консоли:

SELECT host, user, password FROM mysql.user\G;
SELECT * FROM mysql.user[\G];

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

Новый пользователь в MySQL добавляется командой:

CREATE USER 'some_user'@'somehost.somedomain' IDENTIFIED BY 'some_password';

Теперь давайте создадим нашего первого пользователя:

CREATE USER 'test'@'localhost' IDENTIFIED BY 'secret'; FLUSH PRIVILEGES;

Полезная возможность — добавление комментария:

CREATE USER 'test'@'localhost' COMMENT 'My 1st user for app';

FLUSH PRIVILEGES

Обратите внимание на эту команду: она дает серверу команду перечитать привилегии. Как следует из документации, команда FLUSH PRIVILEGES в MySQL нужна только в случае прямой модификации таблиц привилегий MySQL операторами типа INSERT, UPDATE или DELETE. Но для простоты запоминания будем указывать ее и для «правильных» операторов таких как GRANT, REVOKE, SET PASSWORD и RENAME USER, как в примере выше и остальных, используемых в статье.

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

Для удаления пользователя используется команда

DROP USER 'some_user'@'somehost.somedomain';

На нашем предыдущем примере:

DROP USER 'test'@'localhost'; FLUSH PRIVILEGES;

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

Это не лучшая практика, но бывают ситуации, когда у СУБД несколько хозяев и всем нужно быть суперпользователями. В MySQL добавить пользователя с root-правами можно так:

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;

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

Отзыв полномочий у пользователя

Команда отзыва привилегий функционально обратна GRANT, “TO” заменяется на “FROM”:

REVOKE SELECT ON `somedb`.* FROM 'someuser'@'somehost'; REVOKE ALL PRIVILEGES ON `somedb`.* FROM 'someuser'@'somehost'; REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'someuser'@'somehost';

Смена пароля

Для изменения пароля учетной записи пользователя применяется команда ALTER USER:

ALTER USER 'test_user'@'localhost' IDENTIFIED BY 'new_password';

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

Доступ предоставляется командой:

GRANT SELECT ON `some_db`.* TO 'some_user'@'somehost.somedomain'; FLUSH PRIVILEGES;

Допустим, наше ПО использует базу данных test_db. Для его работы мы создали пользователя test_user, а FQDN хоста, где работает ПО — наш локальный хост (localhost). Наше приложение только считывает данные из БД — выполняет SELECT.

Создадим пользователя и БД (часто БД называют схемой, в терминах MySQL):

CREATE SCHEMA test_DB; CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'secret';

Команда для предоставления доступа будет выглядеть так:

GRANT SELECT ON `test_db`.* TO 'test_user'@'localhost'; FLUSH PRIVILEGES;

Наследование привилегий

В предыдущем примере наш пользователь сможет только читать данные из базы test_db, но передать свои права другому пользователю не сможет. Используя GRANT OPTION, мы можем позволить ему сделать это. Тогда пользователь получит возможность передавать другим то, что разрешено ему самому.

GRANT SELECT, INSERT, UPDATE, DELETE ON `some_db`.* TO 'some_user'@'somehost' WITH GRANT OPTION;

В этом примере some_user может поделиться правами на SELECT, INSERT, UPDATE, DELETE для базы some_db.

Из соображений безопасности использовать GRANT OPTION небезопасно! В случае компрометации учетной записи злоумышленник сможет не только получить доступ к данным, но и сделать закладку в виде копии учетной записи.

Доступ к таблице

Примеры выше дают доступ ко всей БД. Часто доступ должен быть ограничен строго определенным набором таблиц:

GRANT SELECT ON `test_db`.`table_users` TO 'test_user'@'localhost';

Выполнение команды приведет к ошибке, т.к. этой таблицы еще нет.

CREATE TABLE `test_db`.`table_users` (id INT AUTO_INCREMENT PRIMARY KEY, user_name VARCHAR(16) NOT NULL, password VARCHAR(32));

и повторим предоставление доступа:

GRANT SELECT ON `test_db`.`table_users` TO 'test_user'@'localhost';

Доступ к столбцу

Предоставляется перечислением столбцов:

GRANT SELECT (id, user_name), UPDATE (user_name) ON `test_db`.`table_users` TO 'test_user'@'localhost';

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

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

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

Проверка текущих полномочий пользователя

Нам пригодится команда:

SHOW GRANTS FOR 'someuser'@'somehost.somedomain';
SHOW GRANTS FOR 'appuser'@'srv14.example.com'; +--------------------------------------------------------------------------------------------------------------------------------+ | Grants for appuser@srv14.example.com | +--------------------------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'appuser'@'srv14.example.com' IDENTIFIED BY PASSWORD '*F4E0A7F0B10264F70558CF07A4ABD4E041182D6E' | | GRANT SELECT ON `net_database`.* TO 'appuser'@'srv14.example.com' | +--------------------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

Проверка полномочий к данным

Через read-only БД information_schema доступно множество метаданных — системной информации. Информация о доступе на БД (схемы), таблицы и столбцы доступны в таблицах schema_privileges, table_privileges и column_privileges. Работа с ними — обычные SQL-запросы:

SELECT * FROM information_schema.schema_privileges; SELECT * FROM information_schema.table_privileges; SELECT * FROM information_schema.column_privileges; SELECT * FROM information_schema.column_privileges WHERE GRANTEE="'test_user'@'localhost'";
MariaDB [information_schema]> select * from information_schema.column_privileges WHERE GRANTEE="'test_user'@'localhost'"; +-------------------------+---------------+--------------+------------+-------------+----------------+--------------+ | GRANTEE | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | PRIVILEGE_TYPE | IS_GRANTABLE | +-------------------------+---------------+--------------+------------+-------------+----------------+--------------+ | 'test_user'@'localhost' | def | test_db | table_usr | id | INSERT | NO | | 'test_user'@'localhost' | def | test_db | table_usr | user_name | UPDATE | NO | +-------------------------+---------------+--------------+------------+-------------+----------------+--------------+ 2 rows in set (0.001 sec)

Просмотр привилегий через системную БД mysql

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

Информация о пользователях:

SELECT * FROM mysql.user;

Привилегии на базы данных:

SELECT * FROM mysql.db;

Права, назначенные на таблицы:

SELECT * FROM mysql.tables_priv;
 SELECT * FROM mysql.columns_priv;

Просмотр глобальных привилегий

Глобальные полномочия смотрим здесь:

SELECT * FROM information_schema.user_privileges;

Заключение

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

При выдаче прав избегайте избыточности. Права не нужно выдавать с запасом, часто выполнение GRANT ALL PRIVILEGES ON *.* TO ‘myUser’@’%’ — не лучший выход. Другой важный момент, часто упускаемый из виду новичками, — наличие в имени хостовой части. Игнорирование хоста может привести к ошибкам.

Всем высоких скоростей, безаварийной работы и долгого аптайма!

Как создавать таблицы в MySQL (Create Table)

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

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

С этой статьи мы начинаем подробно знакомиться с возможностями ПО PHPMyAdmin. И давайте с Вами научимся управлять пользователями в PHPMyAdmin, так как эта первая вещь, которую необходимо уметь делать.

Давайте подробно разберём следующие пункты:

  1. Создание нового пользователя в PHPMyAdmin.
  2. Редактирование пользователя в PHPMyAdmin.
  3. Удаление пользователя в PHPMyAdmin.

Начнём с создания нового пользователя:

  1. Зайти на главную страницу PHPMyAdmin.
  2. Выбрать пункт «Привилегии«. PHPMyAdmin привилегии
  3. Перейти по ссылке «Добавить нового пользователя«. Добавление нового пользователя в PHPMyAdmin
  4. Настроить параметры нового пользователя и нажать на кнопку «Пошёл«. Параметры нового пользователя PHPMyAdmin

Теперь поговорим о параметрах нового пользователя подробнее:

  • Имя пользователя — либо задавайте обычный логин, либо, если укажите в выпадающем списке «Любой пользователь», логин задавать не нужно.
  • Хост — тот адрес, с которого данный пользователь может подключаться. Как правило, пишут «localhost», чтобы подключаться можно было только с этого же хоста, однако, иногда требуется подключение с других хостов. В таком случае нужно выбрать в выпадающем списке «Любой хост«.
  • Пароль — вводите пароль. Если не хотите использовать пароль, то можете выбрать в выпадающем списке «Без пароля«. Обратите внимание: «Без пароля» — это не то же самое, что «Любой пароль«. То есть если при подключении Вы укажите пароль для пользователя, у которого его нет, то будет ошибка авторизации.
  • Подтверждение — если указывали пароль, то повторите его ввод.
  • Глобальные привилегии — подробно о каждой привилегии мы говорили в статье: Права пользователей в PHPMyAdmin

Теперь давайте подробно разберём, как редактировать пользователей в PHPMyAdmin:

  1. Зайти на главную страницу PHPMyAdmin.
  2. Выбрать пункт «Привилегии«. PHPMyAdmin привилегии
  3. Выбрать пользователя, которого Вы хотите отредактировать. Редактирование пользователя в PHPMyAdmin
  4. Изменить настройки пользователя и нажать на кнопку «Пошёл«.

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

И, наконец, разберём процесс удаления пользователей в PHPMyAdmin:

  1. Зайти на главную страницу PHPMyAdmin.
  2. Выбрать пункт «Привилегии«. PHPMyAdmin привилегии
  3. Выбрать пользователей, которых Вы хотите удалить и нажать на кнопку «Пошёл«. Удаление пользователей в PHPMyAdmin

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

Подробная работа с phpMyAdmin в новой версии разобрана в курсе «PHP и MySQL с Нуля до Гуру«: http://srs.myrusakov.ru/php

Создано 05.01.2011 17:45:30

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

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

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 5 ):

    Adrenalin 07.12.2011 18:45:29

    1.Я правильно понял? Сначала нужно создать пользователя, который сможет создавать таблицы? Или Вы здесь описываете пользователя, который добавляеться в уже готовую таблицу? 2.Открыл в браузере ссылку: http://localhost/tools/phpmyadmin/, а там всё на англисском языке. Качал Денвер с оф. сайта. Как переключиться на русский?

    Admin 07.12.2011 18:58:12

    1. Здесь добавляются пользователи для управления базами данных. Вы их можете и не создавать на Denwer, поскольку там есть пользователи по умолчанию (собственно, поэтому Вы и вообще управляете через PHPMyAdmin). 2. В Denwer теперь PHPMyAdmin только на английском. Теоретически можно скачать PHPMyAdmin отдельно со всеми языками и установить его. Если хотите — делайте, хотя я рекомендую привыкать к англоязычному интерфейсу, поскольку на реальном хостинге почти всегда англоязычный.

    vasdom 21.05.2012 08:07:18

    На домашней странице phpMyAdmin, внизу придуприждения, что «root» без пароля. Пытался изменить пароль для «root». После етого я phpMyAdmin ,больше не запустил, много было красних слов. Пришлись переустанавливать Денвер. Нужно вабще трогать етот пароль? Менять или забить на придупреждения?

    Admin 21.05.2012 10:56:14

    Нет, не надо менять этот пароль.

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

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

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

    Что означает выделенный текст

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

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

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

    Давайте начнем с создания нового пользователя внутри оболочки MySQL:

    Примечание: при добавлении пользователей в оболочке MySQL в данном руководстве мы будем в качестве хоста пользователя использовать localhost , а не IP-адрес сервера. localhost — это имя хоста, которое означает «этот компьютер», и MySQL работает с этим именем хоста особенным образом: когда пользователь на данном хосте выполняет вход в MySQL, СУБД будет пытаться подключиться к локальному серверу, используя файл сокета Unix. Таким образом, localhost обычно используется, если вы планируете подключение к вашему серверу через SSH или если вы запускаете локальный клиент mysql для подключения к локальному серверу MySQL.

    В данный момент newuser не имеет прав на выполнение каких-либо действий с базами данных. Фактически, даже если newuser попытается выполнить вход (с помощью пароля password ), он не сможет получить доступ к оболочке MySQL.

    Таким образом, первое, что необходимо сделать, — это предоставить пользователю доступ к необходимой ему информации.

    Звездочки в этой команде обозначают базу данных и таблицу (соответственно), к которым пользователь может получить доступ. Эта конкретная команда позволяет пользователю читать, редактировать, запускать и выполнять любые задачи для всех баз данных и таблиц.

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

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

    После этого внесенные вами изменения вступят в силу.

    Предоставление пользователю различных прав

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

    • ALL PRIVILEGES — как мы уже увидели ранее, данный набор прав предоставляет пользователю MySQL полный доступ к определенной базе данных (если не выбрана ни одна база данных, предоставляется глобальный доступ к системе)
    • CREATE — позволяет пользователю создавать новые таблицы или базы данных
    • DROP — позволяет пользователю удалять таблицы или базы данных
    • DELETE — позволяет пользователю удалять строки из таблиц
    • INSERT — позволяет пользователю вставлять строки в таблицы
    • SELECT — позволяет пользователю выполнять команду SELECT для чтения данных из базы
    • UPDATE — позволяет пользователю обновлять строки таблицы
    • GRANT OPTION — позволяет пользователю предоставлять или отзывать права других пользователей

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

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

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

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

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

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

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

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

    а затем войдите снова, введя следующую команду в терминале:

    Заключение

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

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

    • Создание баз данных и управление ими в MySQL и MariaDB на облачном сервере
    • Импорт и экспорт баз данных и сброс корневого пароля в MySQL
    • Миграция базы данных MySQL между двумя серверами
    • Настройка репликации master–slave в MySQL

    Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

    PhpMyAdmin — как создать пользователя и базу данных

    phpMyAdmin — популярный инструмент для управления базами данных MySQL.

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

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

    Войдите в phpMyAdmin от имени пользователя root.

    Способ входа зависит от хостинга. На хостинге NetAngels достаточно добавить в любому сайту в адресной строке /mysql . Например mywebsite.ru/mysql .

    После входа в верхней части страницы нажмите “Учетные записи пользователей”

    Кликните “Добавить нового пользователя”.

    Введите имя пользователя и пароль. В качестве имени хоста выберите “Локальный”.

    Отметьте галочкой “Создать базу данных с таким же именем …”.

    Промотайте страницу вниз и нажмите кнопку “Вперед”.

    Мы успешно создали пользователя myuser и базу данных myuser .

    Как загрузить дамп базы

    В левой части страницы кликните на нужную базу данных. В нашем случае это будет база myuser . Далее в верхней части страницы выберите “Импорт”:

    После этого кликните на кнопку “Выберите файл”:

    После выбора файла промотайте страницу вниз и нажмите кнопку “Вперед”. Готово!

    Как скачать дамп базы

    В левой части страницы кликните на нужную базу данных. В нашем случае это будет база myuser . Далее в верхней части страницы выберите “Экспорт”:

    В нижней части страницы нажмите кнопку “Вперед”.

    Рекомендуемые статьи:

    • Как изменить версию PHP на сервере с Debian 10
    • WordPress — как отключить управление сайтом через xmlrpc
    • Несколько причин медленной работы сайта на примере WordPress
    • WordPress — смена домена сайта при помощи wp-cli
    • Когда использовать index.php, а когда index.html
    • PHP. Как удалить элемент из массива
    • Дата и время в PHP
    • PHP. Различия между Fast-CGI, CGI, Mod-PHP, SuPHP, PHP-FPM
    • Простой пример кода на языке PHP
    • PHP. Проверка содержит ли строка определенное слово
    • Как предотвратить SQL инъекции в PHP
    • Как установить Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 18.04
    • Как настроить отображение ошибок в PHP
    • Несколько трюков и секретов PHP

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

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