本文介绍通过控制台修改RDS MySQL实例数据库账号权限或删除账号时,出现报错的原因及解决方案。
问题描述
通过RDS MySQL控制台修改账号权限时报错,错误码为
Account.UpdateError
。通过RDS MySQL控制台删除账号时报错,错误码为
Account.DelError
。
问题原因
该问题是由于通过MySQL命令行创建的数据库账号,如果host值不是%
(表示允许任何主机/IP登录),则不支持在RDS控制台修改这些账号权限或者删除账号。
解决方案
方案一:使用高权限账号通过MySQL命令行进行授权或者删除账号。
授权语句如下:
GRANT '<填写权限类型,例如CREATE>' ON *.* TO '<填写待授权的普通账号名>'@'<填写host,%表示任意主机>';
示例如下:
-- 给名为zhttest的账号授予在所有数据库中创建、查询的权限 GRANT CREATE, SELECT ON *.* TO 'zhttest'@'%';
说明更多关于GRANT命令的说明,请参见MySQL官方说明文档。
可授予的权限列表,请参见账号权限列表。
删除语句如下:
DROP USER '<填写待删除的普通账号名>'@'<填写host,%表示任意主机>';
示例如下:
-- 删除名为zhttest的账号 DROP USER 'zhttest'@'%';
方案二:使用高权限账号通过MySQL命令行将数据库账号的host修改为
%
,然后再前往RDS控制台进行账号授权或者删除账号。UPDATE mysql.user SET host='%' WHERE user='<填写普通账号名>';
示例如下:
-- 将名为zhttest的账号的host属性修改为%,即允许从任何主机登录 UPDATE mysql.user SET host='%' WHERE user='zhttest';
相关文档
如何登录到RDS MySQL实例,请参见通过命令行、客户端连接RDS MySQL实例。
通过RDS控制台、SQL语句或API修改数据库账号权限的方法,请参见修改账号权限或GrantAccountPrivilege - 授权账号访问数据库。
通过RDS控制台、SQL语句或API删除数据库账号的方法,请参见删除账号或DeleteAccount - 删除数据库账号。
文档内容是否对您有帮助?