2013-07-24 34 views
1

我以用戶'someuser'連接到mysql服務器。當我從本地連接到服務器時,我可以看到所有的數據庫。從本地主機看不到數據庫,但連接到服務器時看到它數據庫

然而,當我SSH到服務器,並使用「someuser」登錄並執行show databases;我只看到兩個:information_schematest

如何查看所有的數據庫,當我SSH到數據庫中呢?

show grants;顯示下方

mysql> show grants; 
| Grants for [email protected]            | 
| GRANT USAGE ON *.* TO 'someuser'@'localhost' IDENTIFIED BY PASSWORD '*' | 

編輯

當我SSH到服務器並登錄使用的根,然後我可以看到所有的數據庫,細到MySQL。

+0

不能看到名爲'mysql'的數據庫嗎?你的意思是「localbox」是什麼意思? – Manu

+0

有多少個mysql實例正在運行?在兩種情況下,你確定你已經連接到同一個實例嗎? – Slowcoder

+0

嗯,據我所知,我只運行一個。 – Omnipresent

回答

1

GRANT USAGE不是你想要的。據MySQL文檔:

USAGE Synonym for 「no privileges」 

它用於在與授予全球範圍內修改帳戶屬性,如資源限制或SSL特性,而不影響現有的帳戶權限。

http://dev.mysql.com/doc/refman/5.1/en/grant.html

您需要授予權限的實際到你的「SomeUser的」用戶的用戶需要看到的數據庫。例如,如果您授予對MySQL的選擇權限*:執行時

SHOW DATABASES; 

然而

GRANT SELECT ON mysql.* 
TO [email protected] IDENTIFIED BY "somepassword"; 
FLUSH PRIVILEGES; 

現在,從本地主機連接SomeUser的就能看到MySQL數據庫,您可能希望僅保留對root用戶的mysql數據庫訪問權限。

相關問題