在 Web 服务器上运行着 MySQL 服务,为服务器用户提供数据库。每个用户都有自己的数据库和密码,并有权在数据库中插入/选择/更新/删除表自己的DB,仅此而已。
但是,我想授予用户更新自己密码的权限。我已阅读 MySQL 5.1 文档中的“12.4.1.3. GRANT 语法”。但我没有找到一种方法来授予用户更改密码的权限,而无需授予对 mysql.user 表的完全更新访问权限。
也许还有一种方法可以将 /etc/shadow 中的密码与 mysql.user 中的密码同步,这样,每次用户在 Linux 中更改密码时,MySQL 密码也会被更改。
问候 Mac
答案1
我认为您不需要特殊权限即可执行此操作。
我刚刚创建了一个新用户(仅授予使用权),并且能够通过以下方式更改我的密码:
SET PASSWORD = password('bla');
答案2
GRANT UPDATE 基本上允许该用户更新 mysql 表,这是一件坏事。我怀疑这里需要一个脚本 - 如果你也想与 linux 系统密码同步,那么我怀疑你需要一个包装脚本,它接受密码,更改 linux 密码,然后更新 mysql 密码 - 你需要并且可执行但不是在这个文件上设置的可读权限我应该想或者把它隐藏在网络界面后面。