Flush privileges mysql для чего

Flush privileges mysql для чего

GRANT реализован в MySQL Version 3.22.11 или позже. Для более ранних версий MySQL инструкция GRANT не делает ничего.

Команды GRANT и REVOKE позволяют администраторам системы создавать пользователей, предоставлять и отменять права на MySQL-пользователей в четырех уровнях привилегий:

Если Вы даете привилегии пользователю, который не существует, он будет автоматически создан. За примерами по работе GRANT обратитесь к разделу «4.3.5 Добавление новых пользователей к MySQL».

Для инструкций GRANT и REVOKE аргумент priv_type может быть определен как любой из следующего списка:

В настоящий момент GRANT поддерживает имена хоста, базы данных, таблицы и столбца длиной только до 60 символов. Имя пользователя может быть длиной до 16 символов.

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

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

Если пользователь не имеет привилегий на таблице, данная таблица не отображается вообще, когда пользователь запрашивает список таблиц (например, инструкцией SHOW TABLES ).

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

Вы не должны предоставлять привилегию alter нормальному пользователю. Если Вы это сделаете, пользователь может попробовать разрушить систему привилегии, переименовывая таблицы!

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

Самые большие различия между ANSI SQL и MySQL версиями оператора GRANT :

Имеются несколько различий между использованием имен и паролей MySQL и Unix или Windows:

Или в кратком виде:

Обратите внимание, что в последнем примере пароль НЕ database_name.

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

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

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

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

ОБРАТИТЕ ВНИМАНИЕ: заданные по умолчанию привилегии иные для Windows. Подробности в разделе » 2.6.2.3 Запуск MySQL под Windows».

Вы можете, в MySQL версии 3.22 и выше, использовать инструкцию SET PASSWORD :

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

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

Изучение скрипта scripts/mysql_install_db весьма пригодится при сборе информации по созданию и настройке других пользователей.

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

Вы можете добавлять пользователей двумя различными путями: используя инструкции GRANT или непосредственно управляя таблицами MySQL.

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

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

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

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

Если Вы хотите давать специфический доступ пользователю с любой машины в данном домене, Вы можете выдать инструкцию GRANT таким образом:

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

ОБРАТИТЕ ВНИМАНИЕ: PASSWORD() не выполняет шифрование пароля так, как это делается в Unix.

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

Источник

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

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

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

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

1. Как создать пользователя MySQL

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

Flush privileges mysql для чего. Смотреть фото Flush privileges mysql для чего. Смотреть картинку Flush privileges mysql для чего. Картинка про Flush privileges mysql для чего. Фото Flush privileges mysql для чего

Теперь можно работать. Для создания пользователя используется команда CREATE USER, её синтаксис такой:

CREATE USER ‘имя_пользователя’ @ ‘хост’ IDENTIFIED BY ‘пароль’ ;

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

Например, давайте создадим локального пользователя test_user с паролем password:

CREATE USER ‘test_user’@’localhost’ IDENTIFIED BY ‘password’;

Flush privileges mysql для чего. Смотреть фото Flush privileges mysql для чего. Смотреть картинку Flush privileges mysql для чего. Картинка про Flush privileges mysql для чего. Фото Flush privileges mysql для чего

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

CREATE USER ‘test_user’@’%’ IDENTIFIED BY ‘password’;

Flush privileges mysql для чего. Смотреть фото Flush privileges mysql для чего. Смотреть картинку Flush privileges mysql для чего. Картинка про Flush privileges mysql для чего. Фото Flush privileges mysql для чего

Смотрим наших пользователей:

SELECT User,Host FROM mysql.user;

Flush privileges mysql для чего. Смотреть фото Flush privileges mysql для чего. Смотреть картинку Flush privileges mysql для чего. Картинка про Flush privileges mysql для чего. Фото Flush privileges mysql для чего

Все пользователи созданы.

2. Права пользователя MySQL

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

Чтобы дать права пользователю MySQL на обновление и добавление записей для базы данных test_database, выполните:

Flush privileges mysql для чего. Смотреть фото Flush privileges mysql для чего. Смотреть картинку Flush privileges mysql для чего. Картинка про Flush privileges mysql для чего. Фото Flush privileges mysql для чего

Дальше дадим этому же пользователю все права над этой базой данных:

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

SHOW GRANTS FOR ‘test_user’@’localhost’;

Flush privileges mysql для чего. Смотреть фото Flush privileges mysql для чего. Смотреть картинку Flush privileges mysql для чего. Картинка про Flush privileges mysql для чего. Фото Flush privileges mysql для чего

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

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

Чтобы отозвать права у пользователя MySQL, используйте команду REVOKE вместо GRANT. Её синтаксис похож на GRANT:

Например, заберём все права на базу данных test_database у нашего пользователя:

Flush privileges mysql для чего. Смотреть фото Flush privileges mysql для чего. Смотреть картинку Flush privileges mysql для чего. Картинка про Flush privileges mysql для чего. Фото Flush privileges mysql для чего

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

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

Даём все привилегии для пользователя test_user над всеми базами данными и всеми таблицами. Но наш пользователь не сможет давать права другим пользователям. Чтобы это исправить, нужно дать ему привилегию GRANT, а для этого используется такая команда:

Теперь этот пользователь является суперпользователем для MySQL и, авторизовавшись от его имени в PhpMyAdmin, вы можете делать всё то же самое, что и с помощью root.

Выводы

Источник

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

Published on November 24, 2014

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

Источник

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

Flush privileges mysql для чего. Смотреть фото Flush privileges mysql для чего. Смотреть картинку Flush privileges mysql для чего. Картинка про Flush privileges mysql для чего. Фото Flush privileges mysql для чего

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

Давайте выясним, чем же она хороша и как с ней работать.

База данных MySQL: что это такое и в чем ее преимущества

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

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

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

Если вести крупный ресурс без БД, то на это будет уходить очень много времени и средств. Базы данных группируют и упорядочивают информацию, упрощают получение доступа к ней. Чтобы администрировать такой большой поток данных, используются СУБД: MySQL, Microsoft SQL Server, PostgreSQL и другие.

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

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

Flush privileges mysql для чего. Смотреть фото Flush privileges mysql для чего. Смотреть картинку Flush privileges mysql для чего. Картинка про Flush privileges mysql для чего. Фото Flush privileges mysql для чего

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

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

На этом с теоретической частью закончим.

Flush privileges mysql для чего. Смотреть фото Flush privileges mysql для чего. Смотреть картинку Flush privileges mysql для чего. Картинка про Flush privileges mysql для чего. Фото Flush privileges mysql для чего

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

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

Вариант 1: с помощью phpMyAdmin

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

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

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

Вариант 2: через консоль

Если вы подключаетесь к серверу по SSH, то этот способ для вас. Нам потребуется выполнить несколько команд:

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

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

В кавычках потребуется изменить следующие данные: user – имя пользователя, pswrd – пароль.

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

Мы выдали указанному пользователю все доступные права. Осталось сохранить внесенные изменения с помощью команды:

Готово! Теперь вы знаете, как создать нового пользователя в MySQL с правами доступа root.

Права доступа

В MySQL выделяют следующие права доступа:

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

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

Способ 1: через phpMyAdmin

Изменяем права доступа:

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

Вариант 2: в терминале

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

Значения внутри скобок необходимо заменить:

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

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

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

Как посмотреть права доступа в MySQL

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

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

Источник

Flush privileges mysql для чего

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

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

Очень важно уделить внимание проблемам безопасности всего сервера (а не только MySQL) и защите от всех типов атак.

MySQL использует защиту, основанную на списках управления доступом (Access Control Lists ACL) для всех подключений, запросов и других операций, которые пользователь может пытаться выполнять. Имеется также поддержка для соединений, зашифрованных SSL между клиентами и сервером MySQL. Многие из понятий, обсуждаемых здесь, не специфические для MySQL: те же самые общие идеи применимы вообще почти ко всем прикладным программам.

При запуске MySQL следуйте этим руководящим принципам:

Когда Вы соединяетесь с сервером MySQL, Вы обычно должны использовать пароль. Он не передается открытым текстом, однако, алгоритм шифрования не очень силен, и с некоторым усилием умный нападаюший может расколоть пароль, если может перехватить трафик. Если подключение между пользователем и сервером проходит недоверенную сеть, Вы должны использовать SSH-туннель, чтобы шифровать связь. Увы, хакеры сделали шифрование совершенно мирной связи обычным делом. А думали ли мы все, что через три года будем совершенно спокойно воспринимать шифрование данных не в военных системах, а дома?

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

Следующие параметры mysqld воздействуют на защиту:

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

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

Управление доступом MySQL включает две стадии:

Каждая таблица содержит поля области (контекста) и поля привилегий.

Поля привилегий указывают привилегии, предоставленные записью таблицы, то есть какие операции могут выполняться. Сервер объединяет информацию из различных таблиц предоставления привилегий, чтобы сформировать полное описание прав данного пользователя. Правила, используемые, чтобы это сделать, подробно описаны в разделе «4.2.9 Контроль доступа, стадия 2: Проверка запросов».

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

Имя поляТип
HostCHAR(60)
UserCHAR(16)
PasswordCHAR(16)
DbCHAR(64)( CHAR(60) для таблиц tables_priv и columns_priv )
Table_nameCHAR(60)
Column_nameCHAR(60)

В таблицах tables_priv и columns_priv поля привилегий объявлены как поля SET :

Имя таблицыИмя поляВозможные элементы набора
tables_privTable_priv‘Select’, ‘Insert’, ‘Update’, ‘Delete’, ‘Create’, ‘Drop’, ‘Grant’, ‘References’, ‘Index’, ‘Alter’
tables_privColumn_priv‘Select’, ‘Insert’, ‘Update’, ‘References’
columns_privColumn_priv‘Select’, ‘Insert’, ‘Update’, ‘References’

Сервер использует таблицы предоставления подобно этому алгоритму:

Сервер mysqld читает содержание таблиц только один раз, при своем запуске. Изменения для таблиц предоставления привилегий вступают в силу как сказано в разделе «4.3.3 Когда изменения привилегий вступают в силу».

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

ПривилегияСтолбецКонтекст (поле) действия
selectSelect_privтаблицы
insertInsert_privтаблицы
updateUpdate_privтаблицы
deleteDelete_privтаблицы
indexIndex_privтаблицы
alterAlter_privтаблицы
createCreate_privбазы данных, таблицы или индексы
dropDrop_privбазы данных или таблицы
grantGrant_privбазы данных или таблицы
referencesReferences_privбазы данных или таблицы
reloadReload_privсерверное администрирование
shutdownShutdown_privсерверное администрирование
processProcess_privсерверное администрирование
fileFile_privдоступ к файлам на сервере

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

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

Привилегии create и drop позволяют создавать новые базы данных и таблицы или удалять существующие.

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

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

Команда shutdown выключает сервер.

Некоторые предосторожности при предоставлении привилегий:

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

Клиент MySQL требует, чтобы Вы определили параметры подключения, когда Вы хотите обратиться к серверу MySQL: компьютер, с которым надо связаться, Ваше имя пользователя и пароль. Например, клиент mysql может быть запущен примерно так (факультативные параметры заключены в `[‘ и `]’ ):

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

Таким образом, для Unix-пользователя joe эквивалентно:

Другая MySQL-клиентура ведет себя аналогично.

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

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

Идентификация основана на двух частях информации:

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

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

Сортировка таблицы user работает следующим образом. Предположим, что таблица user выглядит следующим образом:

Когда сервер читает таблицу, он располагает записи с наиболее специфическими значениями Host вначале ( ‘%’ в столбце Host означает любой компьютер, а, стало быть, наименее специфический). Записи с одинаковыми значениями Host упорядочиваются с наиболее специфическими значениями User (пустое значение User означает любого пользователя, и наименее специфическое). Возникающая в результате сортировки таблица user выглядит следующим образом:

Когда предпринято подключение, сервер просматривает отсортированные записи и использует первое найденное соответствие. Для подключения пользователя jeffrey с машины localhost записи со значением ‘localhost’ в столбце Host окажутся первыми. Из них подходит запись с пустым именем пользователя. Запись ‘%’/’jeffrey’ тоже подходит, но она не первая.

Имеется другой пример. Предположите, что таблица user выглядит следующим образом:

Отсортированная таблица будет выглядеть так:

Подключение пользователя jeffrey с машины thomas.loc.gov согласовано первой записью в то время, как подключение jeffrey с машины whitehouse.gov соответствует второй записи.

Общее неправильное мнение состоит в том, что первыми будут использованы записи, в которых имя пользователя указано явно. Это не так! Только что было показано, что запись, использованная первой, имени пользователя в явном виде не имела вовсе.

Если Вы имеете проблемы при соединении с сервером, распечатайте таблицу user и отсортируйте ее вручную, чтобы видеть, где первое соответствие будет сделано.

Таблицы db и host предоставляют специфические для базы данных привилегии. Значения в полях области могут быть определены так:

Таблицы tables_priv и columns_priv предоставляют специфические для таблицы и столбца привилегии. Значения в полях области (контекста) могут быть определены так:

Процесс проверки запроса описан ниже.

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

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

В TcX таблица host хранит список всех машин в локальной сети. Им предоставляют все привилегии.

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

Источник

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

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