MySQL: разрешить пользователю изменять свой пароль

На веб-сервере работает MySQL-сервис, предоставляющий базы данных для пользователей сервера. У каждого пользователя есть своя собственная БД, свой собственный пароль и соответствующие права, поэтому таблицы INSERT/SELECT/UPDATE/DROP в своей собственной БД, но не более того.

Тем не менее, я хочу дать пользователю право ОБНОВЛЯТЬ его собственный пароль. Я прочитал "12.4.1.3. Синтаксис GRANT" из документации MySQL 5.1. Но я не нашел способа предоставить пользователю право изменять свой пароль, не предоставив полный UPDATE-доступ к таблице mysql.user.

Возможно, есть также способ синхронизировать пароли в / etc / shadow вместе с паролями в mysql.user, поэтому каждый раз, когда пользователь меняет свой пароль в Linux, MySQL-пароль также изменяется.

С уважением Macs

2 ответа

Решение

Я не думаю, что вам нужно специальное разрешение для этого.
Я только что создал нового пользователя (только GRANT USAGE) и смог изменить свой пароль через:

SET PASSWORD = password('bla');

GRANT UPDATE в основном позволит этому пользователю обновить таблицу mysql, что является плохой вещью. Я подозреваю, что здесь необходим скрипт - если вы хотите синхронизировать с системным паролем Linux, то я подозреваю, что вам нужен скрипт-обертка, который принимает пароль, изменяет пароль Linux, а затем также обновляет пароль mysql - вам понадобится и Исполняемый, но не читаемый набор разрешений для этого файла. Я должен подумать или скрыть его за веб-интерфейсом.

Другие вопросы по тегам