MySQL:允许用户更改他/她的 _own_ 密码

Seb*_*ler 3 mysql password shadow

在网络服务器上运行着一个 MySQL 服务,为服务器的用户提供数据库。每个用户都有自己的数据库和它自己的密码和权利,使INSERT / SELECT / UPDATE / DROP表中它自己的数据库,但仅此而已。

但是,我想授予用户更新自己密码的权限。我已经阅读了 MySQL 5.1 文档中的“12.4.1.3. GRANT Syntax”。但是我没有找到一种方法来授予用户更改密码的权限,而不授予对 mysql.user-table 的完全 UPDATE 访问权限。

也许还有一种方法可以将 /etc/shadow 中的密码与 mysql.user 中的密码同步,因此,每次用户在 Linux 中更改其密码时,MySQL-password 也会被更改。

问候 Mac

fak*_*ker 8

我不认为你需要特别许可才能这样做。
我刚刚创建了一个新用户(仅限 GRANT USAGE)并且能够通过以下方式更改我的密码:

SET PASSWORD = password('bla');
Run Code Online (Sandbox Code Playgroud)

  • 2019 更新:当前语法为 `SET PASSWORD = 'bla'`。https://dev.mysql.com/doc/refman/8.0/en/set-password.html (2认同)