6.2.9 Когда изменения привилегий вступают в силу
Если сервер mysqld запущен без опции --skip-grant-tables, он считывает содержимое всех таблиц грантов в память во время начальной последовательности запуска. Таблицы в памяти становятся эффективными для контроля доступа в этот момент.
Если вы изменяете таблицы грантов косвенно, используя оператор управления учетными записями, сервер замечает эти изменения и снова загружает таблицы грантов в память немедленно. Операторы управления учетными записями описаны в разделе 13.7.1 «Операторы управления учетными записями». Примеры включают GRANT, REVOKE, SET
PASSWORD и RENAME
USER.
Если вы изменяете таблицы грантов напрямую, используя операторы, такие как INSERT, UPDATE или DELETE (чего не рекомендуется делать), изменения не повлияют на проверку привилегий до тех пор, пока вы не укажете серверу перезагрузить таблицы или не перезапустите его. Таким образом, если вы измените таблицы грантов напрямую, но забудете их перезагрузить, эти изменения не окажут никакого влияния, пока вы не перезапустите сервер. Это может заставить вас задуматься, почему ваши изменения, кажется, не имеют никакого значения!
Чтобы указать серверу перезагрузить таблицы грантов, выполните операцию сброса привилегий. Это можно сделать, выдав оператор FLUSH PRIVILEGES или выполнив команду mysqladmin flush-privileges или mysqladmin reload.
Перезагрузка таблиц грантов влияет на привилегии каждой существующей сессии клиента следующим образом:
Изменения привилегий таблиц и столбцов вступают в силу с последующим запросом клиента.
-
Изменения привилегий базы данных вступают в силу в следующий раз, когда клиент выполняет оператор
USE.db_nameПримечаниеКлиентские приложения могут кэшировать имя базы данных; следовательно, этот эффект может быть не виден им без фактического изменения на другую базу данных.
Глобальные привилегии и пароли для подключенного клиента не затрагиваются. Эти изменения вступают в силу только в сессиях последующих подключений.
Если сервер запущен с опцией --skip-grant-tables, он не считывает таблицы грантов и не реализует никакого контроля доступа. Любой пользователь может подключиться и выполнить любое действие, что небезопасно. Чтобы заставить сервер, запущенный таким образом, считывать таблицы и включить проверку доступа, сбросьте привилегии.
© 2025 Oracle
Licensed under the GPLv2 License.