MySQL — это кроссплатформенная система управления реляционными базами данных с открытым исходным кодом. Это наиболее экономичная и доступная база данных, которую мы обычно используем. Благодаря своему небольшому размеру, высокой скорости и низкой совокупной стоимости владения, особенно функции с открытым исходным кодом, она позволяет пользователям. для получения максимально практичных результатов. Действительно, многие пользователи мало что знают о принципах авторизации в приложениях. Давайте разберем это для всех. MySQL — это кроссплатформенная система управления реляционными базами данных с открытым исходным кодом. Это наиболее экономичная и доступная база данных, которую мы обычно используем. Благодаря своему небольшому размеру, высокой скорости и низкой совокупной стоимости владения, особенно функции с открытым исходным кодом, она позволяет пользователям. для получения максимально практичных результатов. Действительно, многие пользователи мало что знают о принципах авторизации в приложениях. Давайте разберем это для всех.
Ситуация перезапуска сервера
Когда mysqld запускается, все содержимое таблицы привилегий считывается в память и с этого момента вступает в силу.
При немедленном применении сервером
Изменения в таблице авторизации с использованием GRANT, REVOKE или SET PASSWORD будут немедленно замечены сервером.
Прямое изменение формы авторизации
Если вы изменяете таблицы разрешений вручную (с помощью INSERT, UPDATE и т. д.), вам следует выполнить оператор FLUSH PRIVILEGES или запустить mysqladmin flash-privileges, чтобы сообщить серверу о необходимости перезагрузить таблицы разрешений, иначе ваши изменения не вступят в силу, пока вы не перезапустите их. сервер.
Влияние на существующие связи с клиентами
Когда сервер замечает, что таблица авторизации была изменена, существующие клиентские соединения имеют следующие последствия:
·Разрешения для таблиц и столбцов вступают в силу при следующем запросе клиента.
·Изменения разрешений базы данных вступят в силу при следующей команде USE db_name.
·Глобальные изменения разрешений и паролей вступают в силу при следующем подключении клиента.
Принцип делегирования
Независимо от того, насколько вы осторожны, вы неизбежно оставите лазейки при авторизации пользователей. Надеюсь, следующий контент поможет вам в целом соблюдать эти правила.
Только пользователь root имеет право перезаписывать таблицу авторизации.
Не давайте права перезаписи таблицы авторизации другим пользователям, кроме пользователя root (конечно, если вы можете использовать другого пользователя вместо пользователя root для управления, для повышения безопасности). Из-за этого пользователи могут переопределить существующие разрешения, перезаписав таблицу авторизации. Создайте дыры в безопасности.
Обычно вы можете не допустить этой ошибки, но после установки нового дистрибутива, первоначальная таблица авторизации. Эта уязвимость существует, и вы можете допустить ошибки, если на данный момент не понимаете содержание формы авторизации.
В Unix (Linux) после установки MySQL согласно инструкциям в руководстве необходимо запустить скрипт mysql_install_db для установки базы данных mysql, включая таблицу авторизации и начальные разрешения. В Windows запустите программу установки из дистрибутива, чтобы инициализировать каталог данных и базу данных mysql. Предполагается, что сервер также работает.
Когда вы впервые устанавливаете MySQL на свой компьютер, таблицы авторизации в базе данных mysql инициализируются следующим образом:
·Вы можете подключиться как root с локального хоста без указания пароля. Пользователь root имеет все права (включая права администратора) и может делать что угодно. (Кстати, суперпользователь MySQL и суперпользователь Unix имеют одно и то же имя и не имеют никакого отношения друг к другу.)
·Анонимный доступ предоставляется пользователям, которые могут локально подключаться к базе данных с именем test и любым именем базы данных, начинающимся с test_. Анонимные пользователи могут делать с базой данных что угодно, но не имеют прав администратора.
Как правило, рекомендуется удалять записи анонимных пользователей:
mysql> УДАЛИТЬ ОТ пользователя ГДЕ User="";
Идя дальше, также удалите всех анонимных пользователей в других таблицах авторизации, таблицы со столбцами User — это db,tables_priv и columns_priv.
Также установите пароль для пользователя root.
О настройках пользователя, пароля и хоста
· Используйте пароли для всех пользователей MySQL.
Помните, что если у другого_пользователя нет пароля, любой может войти в систему под другим именем, просто выполнив команду mysql -u другое_пользователь имя_базы_данных. Для клиент-серверных приложений клиент обычно указывает любое имя пользователя. Прежде чем запустить его, вы можете изменить пароли для всех пользователей или только пароль root MySQL, отредактировав сценарий mysql_install_db, например:
оболочка> mysql -u корень MySQL
mysql> ОБНОВИТЬ пользователя SET Password=PASSWORD('new_password')
-> ГДЕ user='root';
mysql> УДАЛЕНИЕ ПРИВИЛЕГИЙ;