Как привилегические пользователи работают на MySQL?
Вопрос
Как привилегические пользователи работают на MySQL? У всех пользователей, которые используют веб -сайт социальных сетей, у каждого есть уникальная привилегия пользователей, чтобы подключиться к БД или все пользователи используют ту же привилегию, например:
$dsn = 'mysql:host=localhost;dbname=social_site';
$username = 'members';
$password = 'pa55word';
Решение
Нет, вообще говоря, будет один (или небольшое число) пользователей MySQL, и скрипт PHP (или другой код на стороне сервера) будет использовать этот пользователь для выполнения всего извлечения и настройки данных. В некоторых сценариях полезно создать немногих пользователей MySQL с различными уровнями разрешений в качестве дополнительного уровня безопасности (так что общий select
Запросы запускаются с использованием пользователя только с select
Привилегии и inserts
а также updates
обрабатываются отдельным пользователем с этими привилегиями). Если вы позволите удаленным компьютерам напрямую доступ к базе данных MySQL (для веб -сайтов или приложений партнеров), также часто создает конкретного пользователя MySQL для этого соединения с разрешениями, ограниченными только тем, что им нужно (нет drop
или же modify
Например, разрешения) и ограничены исключительно их IP -адресом (вы можете ограничить пользователя MySQL подключениями только от одного адреса).
Суть в том, что вы должны создавать только несколько пользователей, и ваш веб -сайт/приложение будет использовать только этот небольшой пул пользователей для выполнения всех запросов. Кроме того, это хорошая практика, чтобы получить доступ к базе данных с пользователем, у которого наименьшее разрешении можно было выполнить задачи (в пределах разума ... не создайте отдельного пользователя для каждого возможного действия ... обычно 1-3 пользователи должны покрывать все Уровни разрешений, которые вы хотите). Если вы создадите огромное количество пользователей, вы (A) замедлите MySQL, так как он должен получить доступ к более крупной таблице разрешений; (б) будет гораздо сложнее управлять разрешениями, если приложение изменится в будущем; и (c) это больше боли в вопросах отладки разрешений (ваш сценарий PHP обладает большей гибкостью в том, что делать, и сообщать, если есть проблема с разрешениями).
Другие советы
Обычно у вас есть одно подключение к базе данных и хранить учетные записи каждого пользователя в таблице «Пользователи» с соответствующими именами пользователей и паролями.