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


Оглавление (нажмите, чтобы открыть):

ИТ База знаний

ShareIT — поделись знаниями!

Полезно

Узнать IP — адрес компьютера в интернете

Онлайн генератор устойчивых паролей

Онлайн калькулятор подсетей

Калькулятор инсталляции IP — АТС Asterisk

Руководство администратора FreePBX на русском языке

Руководство администратора Cisco UCM/CME на русском языке

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Похожие статьи

Chef — управление сетью. Плюсы и минусы

Примеры использования Puppet

Самое интересное про Guest Additions в VirtualBox

Конвертация виртуальных машин/дисков

Права доступа к MySQL через Linux

Прямо из консоли

3 минуты чтения

Не все любят управлять MySQL через Linux. Management Studio – говорили они. CLI – говорим мы. Бро, эта статья про то, как дать права доступа (permissions) учетным записям в Linux – среде.

Логинимся

Подключаемся к своему серверу по SSH. В командной строке вводим:

Хоп – и мы уже в режиме управления MySQL:

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


А теперь права

Друже, синтаксис команды, которая даст нужные тебе права крайне простой. Вот он:

Разберемся слева на право:

  1. права — могут быть следующие:
    • ALL – дает полный доступ к базе данных. Кстати, если база данных не определена в команде, то даст полный доступ ко всему в MySQL (ох не надо так);
    • CREATE – позволяет пользователю создавать базы данных и таблицы;
    • DELETE – дает право пользователю удалять строки из таблиц;
    • DROP – дает право удалять базы данных и таблица целиком (ну, так тоже не надо);
    • EXECUTE – дает право пользователю выполнять хранимые процедуры;
    • GRANT OPTION – с этой опцией юзер сможет давать права (или удалять) другим пользователям;
    • INSERT – дает право хранить молчанию и все что он скажет будет.. Ладно, это просто право на добавление новых строк в таблицу;
    • SELECT – самое распространенное право – парсить (извлекать) данные из SQL для чтения;
    • SHOW DATABASES — этому пользователю можно будет смотреть на список баз данных;
    • UPDATE – дает право пользователю изменять текущие строки в таблице;
  2. база_данных собственно, база данных, внутри которой живет ваша таблица;
  3. таблица — сама таблица. Табличка, table, le tableau;
  4. логин — имя пользователя вашего юзверя;

Все просто. Пробежимся по примерам.

Пример №1

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

Использование звездочки (*) – это как маска, под которое попадает все.

Пример №2

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

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

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

Посмотреть права очень просто. Опять же, на примере нашего юзера example:

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

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

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.

MySQL работа с пользователи

Пользователи MySQL
Все пользователи MySQL хранятся в таблице user базы mysql.
Чтобы посмотреть список пользователей нужно переключиться на базу mysql и сделать выборку с помощью команды select:

Из списка видно, что в базе имеются учетные данные суперпользователя root с возможностью подключаться только локально с данного сервера(адреса 127.0.0.1, localhost и имя сервера testhost).
Еще есть системная учетная запись debian-sys-maint служит для внутренних системных целей СУБД MySQL.

В предыдущей части я рассказывал как настроить в конфигурационном файле /etc/mysql/my.cnfудаленное подключение к серверу баз данных MySQL.
Напомню: для этого в параметре bind-address выставляется IP адрес 0.0.0.0 вместо 127.0.0.1, т.е. демон mysqld будет слушать не только локальный интерфейс 127.0.0.1, а все адреса имеющиеся на сервере.
В этой части я расскажу как создать пользователя mysql, какие права выдать для различных пользователей, как выставить пароль и хост с которого будет производиться подключение.

Пользователь для веб сайта
Обычно различные веб приложения которые хранят информацию в базе mysql требуют создать отдельную учетную запись. Создадим пользователя website-user от имени которого будет работать наше веб приложение.
Пользователя можно создать через команду create user, а потом выдать права grant select,insert. но удобнее и быстрее сразу воспользоваться командой grant

Здесь я сразу указал:

  • выдать права GRANT SELECT,INSERT,UPDATE,ALTER,DELETE,CREATE,DROP,INDEX (возможно для вашего веб приложения список прав будет иной, обратитесь к документации веб приложения);
  • на базу website.* — имя базы указывается по маске (все файлы с названием website). Здесь можно указать *.*, тогда пользователь будет иметь права на все базы;
  • ‘websiteuser’@’localhost’ — имя пользователя, и хост с которого этот пользователь может подключаться в базу;
  • IDENTIFIED BY ‘website-password’ — указываем пароль пользователя.

Администратор баз данных
В следующем примере создадим учетную запись администратора баз данных который будет подключаться с IP адреса компьютера администратора 192.168.8.10


Выдадим полные права пользователю admin на базу website:

Теперь администратор может подключиться со своего компьютера к серверу баз данных. В этом примере я использовал команду create user, а уже потом grant в принципе разницы нет как будут создаваться пользователи.

Пользователь backup
Создадим пользователя backup для резервного копирования всех базы данных

  • GRANT SHOW DATABASES, SELECT, LOCK TABLES, RELOAD — Здесь я указал необходимый набор прав для удаленного резервного копирования и в то же время достаточный для безопасного бэкапа;
  • *.* — Пользователь backup может просматривать все базы;
  • ‘backup’@’%’ — пользователь backup может подключаться с любого IP адреса. Обычно не требуется разрешать подключения с любого ip для целей резервного копирования, так как у сервера backup всегда постоянный IP адрес.

Как поменять пароль?
Чтобы поменять пароль можно воспользоваться командой mysqladmin эту команду нужно запускать в bash.

А так же можно воспользоваться командой (SQL синтаксис) из консоли MySQL

Как сбросить пароль root?
Поменять пароль root можно всеми теми же командами, что и для обычного пользователя. Но вот что делать если вы забыли пароль рута или по каким-то причинам его утеряли, тогда проделаем следующие операции.

1) Останавливаем MySQL:

2) Запускаем MySQL с особыми параметрами:

3) Запускаем клиента MySQL:

4) Выполняем запрос SQL:

где newpassword — новый пароль

5) Применяем изменения:

6) Выходим из клиента MySQL:

7) Перезапускаем MySQL сервер:

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

Посмотрим существующих пользователей

Дадим права пользователю test на чтение всех таблиц базы scada

Дадим все права пользователю test на все таблицы базы scada

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

Доступ к базе для данного пользователя возможен только с localhost. Если вы хотите дать ему доступ к базе с любого хоста, используете % вместо localhost:

Проверить права пользователя :

Удаляются пользователи проще, чем создаются :). Например, если мы решим избавиться от пользователя ’my_user’

Читайте другие интересные статьи

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

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


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

Для начала необходимо зайти в графический MySql клиент или запустить консольный Mysql клиент. Кому, что удобнее.
В статье я объясню как добавить пользователя через консольный клиент.

1. Открываем консоль(терминал) выполняем команду для запуска клиента:

Или же попробовать выполнить вход под sudo с правами администратора.

2. Выполняем запрос для создания нового пользователя:

Данная команда создает пользователя с логином new-user и паролем no-root-password.
3. Выдаем неограниченные права на всю базу данных:

Так же вы можете посмотреть как назначить права доступа для MySql пользователя.
4. Выполним команду для подтверждения и применения изменений:

На этом все! Мы создали нового пользователя с полными правами администратора(такими же как у root пользователя) на все базы данных.

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

Пользователей можно добавлять двумя различными способами — при помощи команды GRANT или напрямую в таблицы назначения привилегий MySQL. Предпочтительнее использовать команду GRANT — этот способ проще и дает меньше ошибок. See section 4.3.1 Синтаксис команд GRANT и REVOKE .

Существует также большое количество программ (таких как phpmyadmin ), которые служат для создания и администрирования пользователей. @xref.

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

Новых пользователей можно добавлять, используя команду GRANT :

Эти команды GRANT создают трех новых пользователей:

monty Полноценный суперпользователь — он может подсоединяться к серверу откуда угодно, но должен использовать для этого пароль some_pass . Обратите внимание на то, что мы должны применить операторы GRANT как для monty@localhost , так и для monty@»%» . Если не добавить запись с localhost , запись анонимного пользователя для localhost , которая создается при помощи mysql_install_db , будет иметь преимущество при подсоединении с локального компьютера, так как в ней указано более определенное значение для поля Host , и она расположена раньше в таблице user . admin Пользователь, который может подсоединяться с localhost без пароля; ему назначены административные привилегии RELOAD и PROCESS . Эти привилегии позволяют пользователю запускать команды mysqladmin reload , mysqladmin refres h и mysqladmin flush-* , а также mysqladmin processlist . Ему не назначено никаких привилегий, относящихся к базам данных (их можно назначить позже, дополнительно применив оператор GRANT ). dummy Пользователь, который может подсоединяться к серверу без пароля, но только с локального компьютера. Все глобальные привилегии установлены в значение ‘N’ -тип привилегии USAGE , который позволяет создавать пользователей без привилегий. Предполагается, что относящиеся к базам данных привилегии будут назначены позже.

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

В зависимости от версии MySQL в примере, приведенном выше, может указываться различное количество значений ‘Y’ (в версиях до Version 3.22.11 было меньше столбцов привилегий). Для пользователя admin используется более удобочитаемый расширенный синтаксис команды INSERT , который доступен начиная с версии 3.22.11.

Мастер Йода рекомендует:  Nim совершенный язык программирования

Обратите внимание: чтобы создать суперпользователя, необходимо создать запись таблицы user с полями привилегий, установленными в значение ‘Y’ . Нет необходимости задавать значения в записях таблиц db или host .

Столбцы привилегий в таблице user в последнем операторе INSERT (для пользователя dummy ) не были заданы явно, поэтому данным столбцам был присвоено принятое по умолчанию значение ‘N’ . Точно так же действует команда GRANT USAGE .

В приведенном ниже примере добавляется пользователь custom , который может подсоединяться с компьютеров localhost , server.domain и whitehouse.gov . Он хочет получать доступ к базе данных bankaccount только с компьютера localhost , к базе данных expenses — только с whitehouse.gov , и к базе данных customer — со всех трех компьютеров, а также использовать пароль stupid при подсоединении со всех трех компьютеров.

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

Привилегии для пользователя custom мы назначаем потому, что этот пользователь хочет получать доступ к MySQL как с локального компьютера через сокеты Unix, так и с удаленного компьютера whitehouse.gov через протокол TCP/IP.

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

Первые три оператора INSERT добавляют в таблицу user записи, которые позволят пользователю custom подключаться с различных компьютеров с указанным паролем, но не дают ему никаких привилегий (все привилегии установлены в принятое по умолчанию значение ‘N’ ). Следующие три оператора INSERT добавляют записи в таблицу db , в которой назначаются привилегии для пользователя custom по отношению к базам данных bankaccount , expenses и customer, но только если доступ осуществляется с определенных компьютеров. Как обычно, после внесения изменений непосредственно в таблицы назначения привилегий серверу необходимо дать команду на перезагрузку этих таблиц (при помощи FLUSH PRIVILEGES ), чтобы внесенные изменения вступили в силу.

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

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

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


Описание процедуры назначения прав для пользователей MySQL в панели управления cPanel и их обозначение

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

Все данные в ее базах хранятся в виде логически связанных между собой таблиц, доступ к которым осуществляется с помощью языка запросов SQL. Mysql – свободно распространяемая система, т.е. платить за ее применение не нужно. Кроме того, это достаточно быстрая, надежная и, главное, простая в использовании СУБД, вполне подходящая для не слишком глобальных проектов.

Права для пользователей MySQL

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

CREATE — позволяет создавать новые базы данных и таблицы

DROP — позволяет удалять базы данных или таблицы

INSERT — позволяет добавлять строки к таблице.

UPDATE — позволяет изменять содержание строк таблиц. Не путать с ALTER, которая позволяет изменять саму структуру таблиц (количество строк/столбцов, типы столбцов).

DELETE — противоположна INSERT — позволяет удалять строки из таблицы.

ALTER — позволяет изменять структуру таблиц. Требует CREATE и INSERT привилегии.

SELECT — позволяет читать (выводит строки) таблицы, используя выборки по столбцам и/или по некоторым арифметическим и логическим критериям.

GRANT OPTION — позволяет назначить конкретные права определенному пользователю (также и отобрать). Возможно дать/отобрать только те права, которыми назначающий сам располагает.

LOCK TABLES — блокирует таблицу на время искусственного внесения в нее изменений (администрирование), чтобы данные внутри нее не могли измениться своим естественным путем (во время рабочего процесса).

REFERENCES — позволяет создавать связь между таблицами по внешнему ключу.

EVENT — дает право на создание/изменение/удаление заданий для планировщика

TRIGGER — позволяет создавать/изменять/удалять триггеры (привязываемые к определенным таблицам), которые при выполнении операций DELETE, UPDATE или INSERT совершают дополнительные действия.

INDEX — привилегия даёт право добавлять/удалять индексы к (из) таблицам. Сами индексы назначаются вручную, и дают возможность сэкономить время на поиске строк.

CREATE TEMPORARY TABLES — позволяет создавать временные таблицы на время сессии.

CREATE VIEW — позволяет создать некоторое представление в виде таблицы, которая фактически не существует как единая и содержит лишь данные других таблиц. К примеру, в этом представлении можно собрать определенные сгруппированные данные из трёх таблиц (оператором SELECT) и по факту собранные данные будут лишь ссылаться на данные этих 3-х таблиц и также будут объединением, не нуждающимся в собственной таблице.

SHOW VIEW — позволяет проверить каким запросом (из каких данных состоит) создано определенное представление, заданное с помощью CREATE VIEW

CREATE ROUTINE — позволяет создать процедуру, которая является набором заготовленным набором SQL-команд.

ALTER ROUTINE — позволяет изменить процедуру, созданную посредством CREATE ROUTINE.

EXECUTE — позволяет вызывать готовые процедуры.

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

CREATE TABLESPACE (admin) — позволяет создавать/изменять/удалять пространства таблиц. Само это пространство является логическим и не связано со структурой БД или схемой. Оно декларирует расположение объектов БД на физических носителях и используется для оптимизации системы БД.

CREATE USER (admin) — позволяет создавать/изменять/переименовывать/удалять пользователей баз данных.


PROCESS (admin) — разрешает доступ к информации о потоках (процессах) исполняющихся на сервере.

PROXY (admin) — позволяет войти пользователем под видом другого пользователя. Используется администратором для проверки/отладки прав доступа у необходимого пользователя.

RELOAD (admin) — разрешает использование оператора FLUSH, который чистит кеш MySQL

REPLICATION CLIENT (admin) — позволяет выполнять операции SHOW MASTER STATUS, SHOW SLAVE STATUS и SHOW BINARY LOG.

REPLICATION SLAVE (admin) — данная привилегия необходима пользователям ведомого сервера БД, чтобы этот сервер мог подключаться к ведущему серверу в роли ведомого. Без этой привилегии ведомые сервера не смогут запрашивать обновления баз данных и таблиц у ведущего сервера.

SHOW DATABASES (admin) — позволяет выполнять оператор SHOW DATABASES. Пользователи, не имеющие подобной привилегии, при выполнении данного оператора смогут лишь увидеть базы данных к которым у них есть какие-либо права.

SHUTDOWN (admin) — привилегия позволяет выполнить оператор SHUTDOWN, выключающий MySQL сервер.

SUPER (admin) — привилегия, дающая право на множество операций:

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

ALL (admin) — пользователю, получившему данную привилегию, автоматически назначаются все права в рамках уровня привилегий (возможных привилегий в принципе, согласно контексту выдачи привилегий). Не назначается только привилегия GRANT OPTION в данном случае.

Назначение прав для пользователей MySQL в панели управления

На главной странице cPanel перейдем в раздел «Базы данных → Базы данных MySQL»:

Все операции с базами данных MySQL, пользователями БД и их правами производятся именно в этом меню.

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

Раздел Текущие пользователи обновится:

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

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

Кнопка «Все права» эквивалентна привилегии ALL, описанной в начале руководства, и назначит все возможные права пользователю в контексте принадлежности пользователя определенной группе пользователей на уровне всего MySQL сервера.

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

Основы работы с MySQL

Что такое MySQL?

MySQL — одна из наиболее используемых систем управления базами данных: Что такое СУБД? MySQL применяется для хранения данных в Facebook, Youtube, Twitter, Wikipedia. А также базы данных используются популярными CMS.

Как это следует из названия, в данной библиотеке используется формальный язык SQL (Structured Query Language), на котором создаются запросы к базам данных. Основной инструмент для работы с базами данных MySQL — phpMyAdmin. Подробнее о работе в phpMyAdmin читайте в статье.

  • полностью бесплатная СУБД;
  • поддерживается большинством CMS;
  • неограниченный многопользовательский режим;
  • множество плагинов, облегчающих работу с данной СУБД;
  • поддерживает различные типы таблиц (MyISAM, InnoDB, HEAP, MERGE);
  • позволяет добавлять до 50 миллионов строк в таблицы.
  • ограниченный функционал (не реализованы все возможности SQL);
  • не подходит для масштабных проектов.


Базы данных на хостинге REG.RU доступны на всех тарифах, кроме Host-Lite и Win-Lite. Если у вас один из этих тарифов, для использования баз данных повысьте тариф.

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

Для подключения к базе данных MySQL и для входа в phpMyAdmin необходимо указывать логин и пароль пользователя базы данных.

Логин и пароль

После заказа услуги хостинга в панели управления уже присутствует база данных «u1234567_default» (u1234567 — ваш логин хостинга). Вы можете воспользоваться этой базой данных. Реквизиты доступа к ней приведены в информационном письме и в Личном кабинете в карточке услуги.

Логин и пароль услуги хостинга указаны в информационном письме, отправленном на контактный e-mail после заказа хостинга. Также данная информация продублирована в Личном кабинете. Авторизуйтесь на сайте REG.RU и кликните по нужной услуге хостинга. Логин и пароль указаны на вкладке «Доступы»:

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

Имя сервера

В качестве сервера базы данных необходимо указывать «localhost».

Как изменить пароль базы данных?

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

Руководство по MySQL для новичков

Итак, в теперешней «лабораторной работе» понадобится: компьютер, собственно сам сервер СУБД MySQL, ярлык консоли под рукой (собственно, он всегда должен быть под рукой: хоть удобство работы под cmd и значительно уступает работе в консольке в Linux, но очень много вещей можно сделать из консоли быстрее, чем лезть через 3-5 менюшек за нужной опцией). Много вещей будет делаться именно через консоль. Конечно, существует множество «юзеро-ориентированных» программ, предназначенных для управления сервером, но рассматривать какую-либо одну не имеет смысла. Если вы будете знать основные команды, использовать MySQL в web-приложениях станет не просто легко, а очень просто! Установка MySQL. Устанавливать и использовать мы будем MySQL-сервер 3.23.38. Зачем вообще нужен SQL? На первый взгляд, для создания более-менее приличного сайта не требуется особых наворотов (каковыми некоторые считают PHP и SQL), но даже просто лог счетчика после пары-другой тысяч «оборотов» вам смотреть интересно не будет. Ежели в лог счетчика писать только время-дату, IP и имя компьютера посетителя, то лог в несколько тысяч строчек не только вытягивать каждый раз с сервера надоест, но и оперативно посмотреть, кто был, допустим, в ночь с четверга на пятницу на вашем, безусловно, замечательном сайте, будет очень трудно. А форум писать только, допустим, на PHP не просто довольно сложно, но и «неприятно».

Итак, инсталляция. Как таковая инсталляция не требует особо больших танцев с бубном. Жмем энное количество раз на кнопочку Next — и наслаждаемся. Пару слов о том, как хранятся данные в MySQL. По умолчанию каждая база данных хранится в отдельной папочке, название которой совпадает с названием этой базы данных, которые, в свою очередь, хранятся (опять же, по умолчанию) в папке DATA директории, в которой установлен сервер. Изменить дефолтовое местоположение данных можно следующим образом. Например, вы хотите создать базу данных, которая будет храниться, скажем, в E:/data/database_name, где database_name — имя базы данных. Тогда вы создаете файл database_name.sym в директории DATA и записываете в него всего одну строчку, которая содержит путь к местоположению вашей базы данных: «E:/data/database_name», и сохраняете. Если заглянуть в папки, в которых хранятся данные, то вы увидите там 3 файла. Данные хранятся в «оптимизированном» виде, т.е. не в виде простого текста — так просто их просмотреть не удастся. Итак, три файла: с расширениями .frm — в нем хранится информация о таблицах, содержащихся в БД, .myd — собственно данные и .myi — индексные данные. Теперь займемся безопасностью. Данные о пользователях MySQL хранит в специальной базе данных, которая называется mysql (оригинально, ничего не скажешь:-)). В ней 5 таблиц, в которых хранятся логины и пароли в зашифрованном виде, а также атрибуты доступа к таблице. Эти таблицы называются:

Мастер Йода рекомендует:  10 трендов JavaScript на 2020 год по результатам международного опроса

В таблицах columns_priv, tables_priv хранятся привилегии пользователей для доступа, соответственно, к колонкам и таблицам, в db — привилегии для доступа к базам данных, в host — информация о компьютерах, с которых подключаются юзвери к MySQL, и, наконец, в таблице user хранится информация о пользователях.
Более подробные сведения можно получить из мануала, который есть в установочном пакете (после установки он находится в mysql/Docs). Это почти «двухметровый» документ, в котором написано практически все, что нужно знать на первых порах, и не только на первых:-). Нас интересует, каким образом сменить юзверя с логином root (те, кто знаком с *nux, знают, что это такое, а для остальных поясняю: суперпользователь с неограниченными правами), а также сделать юзверя, из-под имени которого мы будем работать с сервером. В идеале такой пользователь должен быть только один. Остальные пользователи должны быть с ограниченными правами (главный принцип администрирования — что не разрешено, то запрещено). Дело в том, что по умолчанию суперпользователь не имеет пароля!! И если вы, например, занесете в свою базу данных какие-то сверхсекретные сведения, посмотреть, удалить, изменить их сможет каждый:-). Итак, сервер мы установили, начинаем администрирование. Находим директорию, в которую мы установили наш сервер (по умолчанию это C:\mysql). Находим директорию C:\mysql\bin и видим множество «экзешников». Для начала нам потребуется mysql.exe. Запускаем. Да, опции запуска из консоли можно посмотреть, написав что-то вроде

после чего будет выведена справка. Но пока они нам не понадобятся. Все sql-команды вводятся в командной строке и должны завершаться «;» или «\g». Для того, чтобы использовать базу данных, необходимо сначала ее выбрать. Для этого существует команда USE. Нам необходима БД «mysql»:

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

Просмотр имеющихся таблиц так же прост, как и просмотр имеющихся БД:

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

после чего получим список юзверей с названиями компьютеров, с которых им можно подключаться к серверу. Прежде, чем вы начнете экспериментировать с правами доступа к базам данных, советую вам скопировать папку mysql (с файлами соответствующей базы данных) куда-нибудь в отдаленное место для того, чтобы, если что-то не получится, можно было бы «откатиться».

Команда SELECT — она из самых частоиспользуемых команд. С ее помощью мы можем показать, какие данные нас интересуют, и попросить вывести ее на экран. Синтаксис ее таков:

Вместо «интересующие_столбцы_в_таблице» можно поставить «*», тогда нам будут выданы значения всех колонок, которые присутствуют в таблице. Чаще всего вместо » » пишут еще одно ключевое слово — WHERE. Синтаксис таков:

Так, теперь пишем:

где NEWpassword — новый пароль для суперпользователя. К слову, таким образом можно изменить пароль для любого юзверя. Немного поясню, что значат эти команды. Функция PASSWORD(‘string’) шифрует строку по определенному алгоритму, а команда UPDATE изменяет значение записи WHERE (где) в таблице user. К слову, все пароли в MySQL хранятся в зашифрованном виде.
Теперь нам нужно запретить суперпользователю подключаться с удаленных компьютеров. Для этого удаляем строчки со знаком «%». Пишем «DE-LETE FROM user WHERE Host=’%’;». Команда DELETE имеет похожий синтаксис с командой SELECT:

Я надеюсь, понятно, что команды необходимо набирать без кавычек. Да, последней командой мы также удалили и «пустого» юзверя. Теперь у нас только два пользователя с неограниченными правами: root и mentalzavr, пароль которого, к слову, вы должны были задать при первой загрузке WinMySQLAdmin (теперь он должен висеть в трее этаким светофором, зеленый свет на котором означает нормальную работу сервера, желтый — переходное состояние, а красный — останов сервера). Для того, чтобы наши изменения вступили в силу, необходимо либо перезапустить сервер, либо дать команду «FLUSH PRIVILEGES;». Дело в том, что большинство серверов самого различного назначения читают свой конфиг, где хранится большинство их настроек, только один раз при загрузке. Так и сервер MySQL читает базу данных с параметрами доступа к базам данных при загрузке либо принудительно после специальной команды. Перезапустить сервер можно из панели управления, если вы работаете в Windows NT-серии, к которой относятся Windows XP, 2000 и собственно сама NT:-), либо из той же самой пресловутой командной строки. Сначала посмотрим, как называется наша служба. Для этого воспользуемся так называемой расширенной консолью WMIC (WMI Command-line). Если вы до этого ею не пользовались, система вам ее установит (XP). Это очень мощный инструмент. Но не тема данной статьи:-). Итак, пишем

Видим название службы «MySql». Выходим из WMIC:


Теперь останавливаем службу

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

Вы спрашиваете, зачем я все это рассказываю? Одна из причин — таким же образом можно останавливать и запускать любые другие службы. А вторая. Ну, представьте, что у вас стоит сервер MySQL где-нибудь в локальной сети, а ваш компьютер находится в другом здании, и вам необходимо срочно переконфигурировать его. Бежать к серверу и вживую его настраивать? Ну, вы как хотите, а мне лично лень. Коннектимся к серверу и удаленно админим:-). Кстати, программка mysql.exe, которой мы пользовались для подключения к серверу (а именно это мы и делали), может работать и с удаленным сервером. Это легко увидеть, запустив mysql.exe следующим образом:

где вместо «IP_address» — либо имя компьютера, к которому мы подключаемся, либо его IP-адрес:-). Ну вот, сервер мы перезапустили (или просто написали «FLUSH PRIVILEGES;»). Теперь, ежели все правильно, вы не сможете подключиться к своему серверу, просто запустив mysql.exe. Необходимо ввести пароль. Делается это таким образом:

Вас попросят ввести пароль на root, которые мы с вами задавали выше. Если все нормально, появится приглашение «mysql>», как и ранее. Теперь попробуем создать еще юзверей. Делается это так. Создадим троих юзверей с разными правами:

Кстати, если вы дадите команду «mysql> status», сервер вам выдаст некоторое количество полезной информации. Итак, мы создали трех юзверей. Первый — ferst — получает все права и может подключаться к серверу как с локального компьютера, так и удаленно, пароль для доступа ему назначен sam_pass. Второй юзверь — admin — получает права на reload и refresh, но может подключаться только с локального компьютера (что означает значок «%»), пароль на вход не назначен. Третий юзверь с именем doom может подключаться с локального компьютера, и он создан, так сказать, «бесправным», т.е. все глобальные привилегии ему не даны. То же самое можно было бы сделать по-другому. Например, вот так:

Наверное, необходимо пояснить, что это значит. Команда INSERT вставляет строчку в таблицу, название которой следует после слова INTO, в скобках даны названия столбцов, имеющихся в этих таблицах. После VALUES следуют значения, которые заносятся в соответствующие колонки. Значения необходимо заключать в кавычки. Последняя команда обновляет права доступа. Буква ‘Y’ означает включение соответствующей привилегии, ‘N’ — соответственно выключение. Таблица user имеет следующие столбцы (даны в том же порядке, что и в реальности):

Я думаю, что в пояснениях данная таблица не нуждается. Названия колонок говорят сами за себя (если вы, конечно, знаете английский, как я — на уровне 5-го класса хотя бы:-)). Естественно, что, ежели в предыдущих командах буквы ‘Y’ заменить на ‘N’, соответствующий пользователь соответствующего права и не получит:-). Теперь разберемся, каким образом можно изменять права юзверей при подключении к базе данных. Для этого существует команда GRANT.

Поясню, что делают эти команды. После команды GRANT следует список привилегий, которые необходимо предоставить юзверю custom. После слова ON идет название базы данных, после точки можно указать конкретную таблицу в этой базе данных, а звездочка означает «любая». А после слова TO идет имя_юзверя@имя_ компьютера, с которого этот юзверь сможет подключаться. Знак процентов означает «любой_компьютер». После слов IDENTIFIED BY следует указать в кавычках пароль, который будет требоваться у юзверя при входе. В данном случае это ‘stupid’. Конечно, подобного результата можно добиться и непосредственной модификацией таблицы user. Например, вот так:

Я думаю, понятно, что делает данная команда. Она вставляет в таблицу user запись со значениями в столбцах, которые записаны после слова VALUES. Соответствующей модификацией этой команды можно достичь тех же результатов, что и использованием команд, изложенных выше. И не забудьте после того, как внесете изменения, дать команду FLUSH PRIVILEGES;. Теперь, после того, как вы успешно создали юзеров, переходим к более интересной части — собственно созданию базы данных. Для создания базы данных необходимо из той же директории, что и программу mysql.exe, запустить программу mysqladmin.exe. Если вы запустите эту программу просто без опций, она выдаст вам список параметров запуска. Собственно, и все использование этой программы сводится к запуску ее с соответствующими опциями. Итак, нас прежде всего интересует создание и удаление баз данных, а также подключение через логин и пароль к удаленному серверу (лень — воистину двигатель прогресса!). Подключаемся к удаленному серверу hostname с использованием логина root пароля, который у нас после спросят.

Вместо OPTIONS необходимо написать собственно то, что мы хотим сделать. Создание базы данных с именем database_name:

Удаление базы данных database_name после подтверждения и ввода пароля:

Существуют также и другие параметры запуска, на которых мы особо останавливаться не будем, хотя они не менее важны. Сведения о них вы получите, как я вам уже сказал, запустив mysqladmin без опций. Итак, мы создали базу данных. Теперь необходимо создать таблицы, в которых, собственно, и будут храниться данные. Любая таблица должна относиться к какой-либо базе данных. Поэтому запускаем mysql.exe и выбираем только что созданную базу данных «mysql> use database_name» Для создания таблицы существует команда CREATE. Синтаксис таков:

где table_name — имя таблицы, после которой в скобках через запятую указаны последовательно имя столбца и его тип. Конечно, столбцов может быть и больше, чем два. Цифры в столбцах показывают размер значения в столбце. Ну, и для того, чтобы удалить таблицу, соответственно, необходимо написать:

Таблиц в базе данных может быть несколько. Теперь вкратце остановимся на типах данных в таблице. Их довольно много, и поэтому я думаю на первых порах (а данная статья предназначена для предоставления только НАЧАЛЬНЫХ сведений об администрировании СУБД MySQL, и ни в коем разе не является полным руководством) ограничиться нижеизложенным. Пожалуй, наиболее часто встречающимся полем в таблицах является порядковый номер. Это довольно удобно. Так, в MySQL существует возможность создать таблицу со столбцом, значение которого будет изменяться на единицу с каждой новой записью. Теперь о том, как это делается. Как обычно, пишете в консоли:

Мастер Йода рекомендует:  Автоматическое курирование контента в WordPress

Данные команды выбирают в качестве текущей базу данных test и создают таблицу с именем table_name с двумя колонками. Первая колонка имеет атрибут Extra «auto_increment». Это значит, что при добавлении записи в эту таблицу значение (число) в этом столбце будет автоматически увеличиваться на единицу. Посмотреть свойства колонок таблицы можно следующим образом (дав соответствующую команду):

Так, теперь коснемся остальных типов данных. Числовые. Их присутствует большое количество, основными являются (на мой взгляд) INT и FLOAT. Те, кто знаком хотя бы немного с языком программирования С++, поймут сразу же, что первый из них — это целочисленный тип данных. FLOAT — тип данных, используемый для хранения чисел с плавающей точкой. Типы данных даты и времени. К ним относятся DATA, TIME, YEAR, а также некоторые другие. Формат хранения данных в типе DATA — «YYYY-MM-DD», в типе TIME — «HH:MM:SS», в типе YEAR — «YYYY». И практически основным типом данных является CHAR. К текстовым типам также относятся TEXT (65535 символов максимально) и некоторые другие.

И в заключение я хотел бы дать несколько полезных команд, которые помогут вам использовать консоль более эффективно. Все советы действительны для cmd.exe — командного процессора Windows. Для начала вам необходимо включить использование мыши в консоли. Для этого щелкните правой кнопкой мыши на заголовке открытого окна консоли и выберите Свойства. И на первой закладке поставьте галочки напротив пунктов Выделение мышью и Быстрая вставка, а также напротив Отбрасывать повторения. Теперь вы можете в консоли использовать все прелести работы с буфером обмена. Выделение мышью происходит как обычно, копирование в буфер обмена — при нажатии на правую кнопку. Вставка производится в место нахождения курсора также правой кнопкой. Пара слов об автоматизации процесса первичного занесения данных в таблицы. Если вы создаете базу данных с нуля, то никаких проблем практически не возникает (ну, если не считать большого количества организационной работы и непосредственно кодинга, в процесс которого входит создание хотя бы web-интерфейса:-). Конечно, пару-другую строчек можно занести и в консоли. Ну, а ежели у вас имеется какой-то текстовый файл с записями, данные из которых нужно перевести в БД MySQL? Тут воевать только буфером обмена с бесконечным повторением действий «копирование-вставка» может только ну очень большой… трудоголик. Ну, а мы как умные люди можем поступить проще (правда, все в этом мире относительно). Дело в том, что можно в качестве аргумента в команде

передать имя файла «File_name», и этот файл будет выполнен. Что он собой представляет? Это просто последовательный список SQL-команд. Теперь нам остается только сгенерировать такой файл, что в каждом отдельно взятом случае делается по-разному — тут нужно смотреть по обстановке. Конечно, можно пойти еще дальше и написать программу для автоматического занесения данных в БД. Но для простых задач можно просто даже текстовый файл с написанными в нем командами скопировать в буфер и вставить в приглашение MySQL. «Вводы» будут восприниматься как знак завершения команды. Только не забывайте ставить в конце каждой строчки «;», ведь в mysql.exe команды можно вводить и в многострочном режиме, поэтому могут случаться накладки. Правда, есть и альтернативный способ. Если у вас есть текстовый файл с записями в виде таблицы, и они в нем разделены при помощи запятых и знаков окончания строки либо каких-то иных символов (тогда следует внести изменения в параметры следующей команды, заменив запятую и «\n» на соответствующие знаки), можно использовать команду

Результатом данной команды должна явиться таблица. В файле поля должны быть разделены запятыми, а каждая запись — начинаться с новой строки. Следует помнить еще и о такой вещи, как кодировка. Если все данные вносить через консоль, то они будут храниться в DOS-кодировке, и при выводе таких данных — например, если в html-странице используют PHP — вы увидите «абракадабру». Чтобы этого не происходило, заносите данные только в одной кодировке или перекодируйте их с помощью специальных функций (для PHP это функция $text_after=convert_cyr_string ($text,»w»,»d»), где два последних параметра указывают соответственно на то, что исходная кодировка — Windows, а конечная после перекодировки — DOS). И напоследок. Гораздо приятней работать с консолью, так всеми нелюбимой, ежели сделать что-то вроде этого:

На несведущих людей действует довольно своеобразно:-).
А. Спичеков

MySQL: Пользователи, Права и Пароли

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

Аккаунт в MySQL состоит из двух компонентов: имя пользователя и хост.

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

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

Важное Замечание: Спецсимвол % не включает в себя localhost , т.к. localhost обозначает подключение через UNIX сокет вместо стандартного TCP/IP.


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

Показать всех MySQL пользователей:

Вывести только уникальные имена пользователей:

Показать MySQL пользователей вместе с хостами с которых им разрешено подключение:

Посмотреть MySQL пользователей, их пароли и хосты:

начиная с MySQL 5.7:

Дельный Совет: Нужно сменить пароль MySQL пользователя? Это легко сделать из командной строки! Читать далее →

Права Пользователей В MySQL

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

Без каких-либо дополнительных параметров, команда SHOW GRANTS показывает права текущего аккаунта под которым вы подключились на сервер.

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

Дельный Совет: Создайте базу данных в MySQL и дайте пользователю все права на нее с помощью GRANT ALL PRIVILEGES ! Простое и понятное руководство с хорошими примерами по созданию базы данных в MySQL! Читать далее →

Права текущего MySQL пользователя:

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

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

Как добавить пользователя в MySQL и не остаться голодным!

Дата публикации: 2020-05-17

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

Тех, кому доверяем!

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

Это можно делать как через командную строку, так и через программные оболочки. Для начала рассмотрим легкий вариант. Воспользуемся для добавления нового пользователя программой phpMyAdmin. Но для начала давайте сделаем маленький экскурс в систему учетных записей, реализованную в СУБД.

Выше всех в иерархии стоит пользователь с учетной записью root. Изначально эта учетка поставляется с пустым значением пароля. Администратор (root) может в MySQL добавить пользователя, наделить его определенными правами, а также лишить привилегий.

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

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Добавление учеток через phpMyAdmin

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


Чтобы добавить новую учетную запись, нужно нажать на ссылку «Добавить пользователя», которая расположена ниже таблицы. После чего система приложения выведет специальное диалоговое окно «Добавить пользователя».

В самом верхнем разделе («Информация учетной записи») следует задать имя нового пользователя, установить и подтвердить пароль. Также можно получить случайное значение пароля, которое будет автоматически подставлено в поля. Для этого нужно нажать кнопку «Генерировать».

Если прокрутить немного вниз, то станут доступными для редактирования глобальные привилегии, которыми можно наделить создаваемого пользователя. На снимке видно, что все привилегии разделены на несколько категорий: «Данные», «Структура» и «Администрирование». Перед тем, как добавить пользователя в MySQL ,ознакомьтесь с ними и отметьте нужные.

Для создания учетки нажмите внизу диалогового окна кнопку «Добавить пользователя». Теперь посмотрим на результат наших действий. Снова вернитесь к таблице «Обзор учетных записей» и ознакомьтесь с ее содержанием. Как видите, на сервере была создана новая учетка с заданным нами именем.

Добавляем нового пользователя БД

Через phpMyAdmin можно заниматься администрированием ролей не только глобально, но и на уровне отдельных БД. Чтобы в MySQL добавить пользователя к базе, в списке слева выберите нужную. Затем перейдите через пункт меню «Привилегии», где в таблице отобразятся все пользователи, которые имеют доступ к этой базе. Чтобы создать новую учетку БД, нажмите на ссылку «Добавить пользователя», которая расположена немного ниже (под таблицей).

После чего появится знакомый нам уже диалог «Добавить пользователя». Заполняем все поля, как и в предыдущем примере. Наделим leha2 глобальными привилегиями на базу world – пусть что хочет, то и делает с этим миром . И нажимаем внизу «Добавить пользователя».

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

Инструкция о том, как создать нового пользователя MySQL и настроить ему права доступа, используя консоль.

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

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

Следующая команда создает пользователя newuser с паролем password:

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

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

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

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

Теперь ваши изменения вступят в силу.

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

Список некоторых возможных вариантов прав доступа, которые могут получить пользователи:

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

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

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

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

Лишение прав доступа похоже на их назначение:

Команда DROP удаляет пользователя:

На этом всё, данная статья поможет вам создать нового пользователя MySQL и настроить для него необходимые права доступа ��

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