PHP MySQL соединение - PullRequest
       5

PHP MySQL соединение

0 голосов
/ 02 июля 2010

Я давно искал ответ в интернете. Как я мог контролировать пользователей и связи между php и MySQL. Мой вопрос заключается в том, что когда мы создаем базу данных mysql через php, мы фактически создаем пользователя в пользовательской таблице в mysql. Когда я подключаюсь к базе данных, все пользователи, которых мы создали, используют одну и ту же учетную запись mysql для подключения к базе данных. Нужно ли создавать какого-либо пользователя в пользовательской таблице mysql (я имею в виду, что системная таблица содержит пользователей)? Таким образом, пользователь, которого мы используем для входа на сайт, будет соответствовать пользователю в пользовательской таблице базы данных sql? Затем каждый пользователь имеет свою собственную учетную запись mysql для подключения к базе данных. Что я должен сделать, чтобы справиться с такой ситуацией? Приветствия

Ответы [ 3 ]

4 голосов
/ 02 июля 2010

Мне кажется, я понял ваш вопрос, вы спрашиваете об управлении пользователями на стороне базы данных.

По умолчанию у вас есть один пользователь в базе данных, который имеет (конечно) ALL привилегии. Этому пользователю будет присвоено имя root большую часть времени (в зависимости от вашей СУБД, но в случае MySQL это так).

Итак, у вас есть два варианта IMO:

  • Создайте нового пользователя для каждого приложения , который обладает только необходимыми привилегиями, такими как READ, INSERT или UPDATE. Если ваше приложение требует этого, предоставьте ему DELETE привилегий.
  • Используйте root для всех приложений, которые обращаются к базе данных.
  • Создайте пользователя с наиболее распространенными правами, который будет использоваться для ALL приложений, которым необходимо взаимодействовать с базой данных.

Что бы вы ни делали, имейте в виду, что пользователь может делать ВСЕ, на что у него есть привилегии, поэтому будьте осторожны с GRANT с слишком высокими привилегиями.

Я считаю наилучшей практикой (по крайней мере, так было всегда для меня, и я думаю, что она работала достаточно хорошо), чтобы иметь пользователей для каждого приложения, например. когда мне нужно приложение Blog, я создаю пользователя blog с правами INSERT, UPDATE, SELECT, [что нужно].

Еще одно редактирование: Итак, если коротко ответить на ваш вопрос: вам не нужен пользователь MySQL для каждого пользователя приложения.

1 голос
/ 02 июля 2010

Каждый пользователь в вашем приложении должен , а не быть пользователем в MySQL. Как правило, у вас должен быть один пользователь MySQL, который использует все ваше приложение.

0 голосов
/ 02 июля 2010

Еще лучше, создать одного пользователя для приложения.Дайте этому пользователю права на выполнение хранимых процедур и ничего больше.Создайте хранимые процедуры для любого типа активности базы данных, которую вы разрешаете этому пользователю.Это дает вам еще один защитный барьер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...