阿里云RDS的高權(quán)限不是真正的高權(quán)限
如下圖所示在阿里云RDS中升級到了“高權(quán)限賬號”
但是在實(shí)際操作中發(fā)現(xiàn)grant
賦權(quán)失敗矿卑,奇怪的是報錯ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
這個錯誤一般是因為密碼的問題宦焦,但是這里能成功登陸密碼肯定沒有問題
那就繼續(xù)排查啥情況
1、先看看當(dāng)前這個用戶的權(quán)限 root@'%'
MySQL [(none)]> show grants for root;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@% |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
看上去好像沒有問題
2、看看系統(tǒng)都有哪些用戶
MySQL [(none)]> select user,host from mysql.user ;
+---------------+-----------+
| user | host |
+---------------+-----------+
| demo1 | % |
| rds_service | % |
| root | % |
| zabbix | % |
| zentaopms | % |
| aliyun_root | 127.0.0.1 |
+---------------+-----------+
14 rows in set (0.00 sec)
發(fā)現(xiàn)除了 高權(quán)限root
外還有個一個aliyun_root
3、排查這個用戶權(quán)限看看
MySQL [(none)]> show grants for aliyun_root@'127.0.0.1';
+----------------------------------------------------------------------------+
| Grants for aliyun_root@127.0.0.1 |
+----------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'aliyun_root'@'127.0.0.1' WITH GRANT OPTION |
+----------------------------------------------------------------------------+
1 row in set (0.00 sec)
all privileges
這個用戶才是我們一般認(rèn)為的真正的高權(quán)限r(nóng)oot,擁有 所有權(quán)限耸别。
疑問
那么疑問出來了。阿里云給定的高權(quán)限和all privileges
之間存在差異县钥。
驗證
具體驗證過程可以參考另外一篇文章
驗證之后發(fā)現(xiàn) *.*
上面的 all privileges
和這里阿里云給定的高權(quán)限賬號
之間的權(quán)限是存在差異的秀姐;
阿里云給定的高權(quán)限賬號
實(shí)際缺少了SHUTDOWN, FILE, SHOW DATABASES, SUPER, CREATE TABLESPACE
幾個權(quán)限。
所以你在賦權(quán)的時候使用all privileges
但是實(shí)際你是沒有上面幾個權(quán)限的若贮。所以出現(xiàn)了上面的錯誤