Назад | Перейти на главную страницу

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

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

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

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

С уважением, Mac

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

SET PASSWORD = password('bla');

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