Eu não acho que você precise de uma permissão especial para fazer isso.
Acabei de criar um novo usuário (somente GRANT USAGE) e consegui alterar minha senha por meio de:
SET PASSWORD = password('bla');
Em um servidor web existe um serviço MySQL rodando, fornecendo bancos de dados para os usuários do servidor. Cada usuário tem seu próprio banco de dados e sua própria senha e as tabelas INSERT / SELECT / UPDATE / DROP no próprio own DB, mas nada mais.
No entanto, desejo dar ao usuário o privilégio de ATUALIZAR sua própria senha. Eu li "12.4.1.3. GRANT Syntax" da documentação do MySQL 5.1. Mas não encontrei uma maneira de conceder ao usuário o privilégio de alterar sua senha, sem conceder acesso total ao UPDATE para a tabela mysql.user.
Talvez haja também uma maneira de sincronizar as senhas em / etc / shadow junto com as senhas no mysql.user, assim, sempre que o usuário altera sua senha no Linux, a senha do MySQL também é alterada.
Cumprimentos Macs
GRANT UPDATE permitirá basicamente que o usuário atualize a tabela mysql, o que é uma coisa ruim para fazer. Eu suspeito que um script é necessário aqui - se você quiser sincronizar com a senha do sistema Linux também, então eu suspeito que você precisa de um script wrapper que leva uma senha, altera a senha do Linux e atualiza a senha mysql também - você precisa e Mas, como esse conjunto de permissões executáveis, mas não legíveis, deve ser pensado ou oculto por trás de uma interface da Web.