MariaDB非root权限用户修改自身密码需配置何种权限?
在MariaDB中让受限用户仅修改自身密码的权限配置
当受限用户执行语句:
ALTER USER CURRENT_USER() IDENTIFIED BY 'newpassword';
出现#1227 access denied; you need (at least one of) the CREATE USER privilege(s) for this operation错误时,无需授予全局CREATE USER权限,只需配置最小权限即可实现用户仅修改自身密码的需求。
具体权限配置步骤
- 使用拥有全局权限的用户(如root)登录MariaDB,执行以下SQL(替换
'your_user'@'your_host'为目标用户的用户名和主机地址):
GRANT UPDATE (Password) ON mysql.user TO 'your_user'@'your_host'; FLUSH PRIVILEGES;
该语句仅授予目标用户对mysql.user表中自身记录的Password列的更新权限,不会赋予任何其他用户管理或创建权限。
- 权限配置完成后,受限用户可通过以下两种方式修改自身密码:
- 推荐方式:使用
SET PASSWORD语句(无需额外权限):SET PASSWORD = 'newpassword'; - 原
ALTER USER方式:此时执行原语句已可正常生效:ALTER USER CURRENT_USER() IDENTIFIED BY 'newpassword';
- 推荐方式:使用
权限安全性说明
这种配置严格遵循最小权限原则:用户仅能修改自身的密码字段,无法创建新用户、修改其他用户的密码或任何其他用户属性,完全符合需求。
内容的提问来源于stack exchange,提问作者Dolis
相关产品推荐
相关产品推荐

