我试过了
SHOW GRANTS FOR CURRENT_USER它向我展示了:
GRANT USAGE ON *.* TO 'test_user'@'localhost' IDENTIFIED BY PASSWORD 'pass'但此用户具有select for test_script数据库的权限。
下面是root用户的显示授权:
SHOW GRANTS FOR test_user
GRANT USAGE ON *.* TO 'test_user'@'%'
GRANT SELECT ON `test_script`.* TO 'test_user'@'%'为什么SHOW GRANTS FOR CURRENT_USER不显示test_script表的grants?
发布于 2013-03-17 20:12:59
这可能是因为CURRENT_USER (登录的用户)是'test_user'@'localhost',他与'test_user'@'%'拥有不同的权限。
SHOW GRANTS FOR 'test_user'@'%'
SHOW GRANTS FOR 'test_user'@'localhost'如果您使用mysql -h 127.0.0.1 -u test_user -p通过TCP登录,您现在应该使用'test_user'@'%'授权。
当您仅为用户名执行SHOW GRANTS语句时,如果不指定主机,MySQL将尝试列出用户@'%'的授权。如果该规范根本不存在,您将得到
ERROR 1141 (42000): There is no such grant defined for user 'test_user' on host '%'在您的例子中,该规范是存在的,但授权不同于test_user@localhost。
https://stackoverflow.com/questions/15460526
复制相似问题