Процедуру доступа к базе данных MySQL можно разбить на два этапа: подключение к самому серверу MySQL и доступ к отдельным объектам, таким как таблицы базы данных или столбцы таблицы. СУБД MySQL оснащена встроенной системой безопасности для проверки прав пользователя на выполнение обеих задач.
MySQL аутентифицирует пользователя с помощью таблиц, по которым проверяется не только то, чтобы пользователь корректно зарегистрировался с соответствующим именем пользователя и паролем, но и то, что соединение было сделано с допустимого IP-адреса.
Если пользователь подключен, системный администратор может присваивать привилегии для пользователей на доступ к объекту и на определенные действия, которые могут им быть предприняты в MySQL. Например, вы можете предоставить пользователю fred@thiscompany.com право на выполнение только запросов SELECT по складской таблице, в то время как пользователю anna@thatcompany.net предоставлено право на осуществление запросов INSERT, UPDATE и DELETE по этой же таблице.
Безопасность также является проблемой для соединений. Пароли и другие важные данные, передаваемые по сети, уязвимы с точки зрения перехвата любым из имеющихся на рынке анализаторов. По умолчанию старые версии MySQL используют в своей работе довольно простой метод шифрования имен пользователей и их паролей, которые могут остановить начинающего хакера, но не остановит того, кто может потратить немного времени на взлом алгоритма шифрования. В версии 4.1 был внедрен более защищенный протокол, который существенно затруднил взлом MySQL, даже если хакер имеет возможность прослушивания и декодирования сетевого трафика.
Реальные передаваемые по сети данные, такие как результаты запросов, не шифруются и поэтому доступны для просмотра хакерами. Для того чтобы защитить свои данные, можно прибегнуть к помощи одного из SSH-протоколов (Secure Shell). Для этого его необходимо установить как на клиентском приложении, так и на используемой вами операционной системе. При использовании MySQL 4.0 и более поздних версий, появилась возможность использовать протокол шифрования SSL (Secure Socket Layer), который может быть настроен для работы из MySQL, делая безопасным использование Internet и других общедоступных сетевых инфраструктур.