我以“someuser
”用户身份连接到mysql服务器。当我从localbox连接到服务器时,我会看到所有数据库。
但是,当我通过SSH进入服务器并使用“someuser
”登录并执行show databases;
时,我只看到两个:information_schema
和test
当我SSH到数据库时,如何查看所有数据库?
show grants;
显示以下内容
mysql> show grants;
| Grants for dev@localhost |
| GRANT USAGE ON *.* TO 'someuser'@'localhost' IDENTIFIED BY PASSWORD '*' |
修改
当我通过SSH连接到服务器并使用root登录到mysql时,我可以看到所有数据库都很好。
答案 0 :(得分:1)
GRANT USAGE不是您想要的。根据mysql文档:
USAGE Synonym for “no privileges”
它在GRANT的全局级别用于修改帐户属性,例如资源限制或SSL特性,而不会影响现有帐户权限。
http://dev.mysql.com/doc/refman/5.1/en/grant.html
您需要为“someuser”用户授予用户需要查看的数据库的实际权限。例如,如果您授予mysql的选择权限。*:
GRANT SELECT ON mysql.*
TO someuser@localhost IDENTIFIED BY "somepassword";
FLUSH PRIVILEGES;
现在,从localhost连接的某些用户在执行
时将能够看到mysql数据库SHOW DATABASES;
但是,您可能希望仅为root用户保留对mysql数据库的访问权限。