RDS实例主用户可连接但无法查看Schema及执行权限操作求助
解决AWS RDS MySQL主用户权限不足与同名用户冲突问题
步骤1:确认当前用户身份与系统内admin用户
连接数据库后,执行以下SQL命令排查用户情况:
-- 查看实际登录的用户(可能是限定主机的低权限用户) SELECT CURRENT_USER(); -- 列出所有名为admin的用户及其关联主机 SELECT user, host FROM mysql.user WHERE user = 'admin'; -- 查看当前用户的权限范围 SHOW GRANTS FOR CURRENT_USER(); -- 尝试查看RDS原生主用户(admin@%)的权限 SHOW GRANTS FOR 'admin'@'%';
如果CURRENT_USER()返回admin@fxxxx.lnk.telstra.net而非admin@%,且该用户权限极少,说明你登录的是后续创建的限定主机admin用户,而非RDS默认的全权限主用户。
步骤2:切换到RDS原生主用户登录
由于MySQL用户匹配规则是精确主机优先于通配符%,你需要绕开限定主机的用户,用以下方式登录原生主用户:
- 方式1:通过AWS SSM会话管理器连接
利用AWS SSM直接连接RDS(无需公网IP),连接来源为RDS内部网络,会自动匹配admin@%用户。 - 方式2:更换网络环境连接
切换到未被限定的IP(比如手机热点、新办公网络),使用原连接命令重新登录,此时会匹配admin@%的全权限用户。
步骤3:清理冲突用户并修复权限
成功登录admin@%后,执行以下操作:
-- 删除冲突的限定主机admin用户 DROP USER 'admin'@'fxxxx.lnk.telstra.net'; -- 刷新权限使变更生效 FLUSH PRIVILEGES; -- 确保原生主用户拥有全库权限(按需执行) GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
步骤4:验证修复结果
回到原网络重新连接数据库,执行USE uxxx或CREATE USER test IDENTIFIED BY 'password';命令,确认权限正常。
内容的提问来源于stack exchange,提问作者Mel Rode
相关产品推荐
相关产品推荐

