Как привилегические пользователи работают на MySQL?

StackOverflow https://stackoverflow.com/questions/9303529

  •  25-10-2019
  •  | 
  •  

Вопрос

Как привилегические пользователи работают на 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 обладает большей гибкостью в том, что делать, и сообщать, если есть проблема с разрешениями).

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top