2010-03-12 68 views
4

我有一個MySQL用戶添加到數據庫,我想阻止查看某些表。你可以在phpMyAdmin中隱藏MySQL用戶的表嗎?

我可以通過阻止他們運行像DROP或ALTER語句來限制他們的權限。但是有可能阻止他們查看phpMyAdmin中的某些表嗎?

如果沒有MySQL特權來控制它(我不會想象會有),那麼在phpMyAdmin中是否有配置允許這樣做?

我明白一個解決方法是將表移動到一個新的數據庫,他們沒有添加到。這不適用於我的應用程序。

回答

0

您可以將表移動到另一個數據庫,然後限制用戶帳戶僅使用公用表訪問1數據庫。嘗試修改phpmyadmin將是一個巨大的錯誤,用戶可以寫一個自定義查詢來訪問表,這是一個簡單的黑客攻擊。

這必須在數據庫端完成或者完全沒有意義。 SE-Postgresql是我所知道的唯一允許按表格權限進行分類的項目。這是唯一可以這樣做的數據庫,因爲很少有人需要這個功能。

+1

MySQL/phpMyAdmin擁有表格權限。您可以將其設置爲使用戶無法從表格中選擇。正如Rook所說,阻止用戶瞭解表格的唯一方法是將該表格放入用戶無法訪問的數據庫中。 –

+0

此外,您可以阻止用戶在PhpMyAdmin中執行SQL查詢並阻止從外部連接訪問服務器。沒有真正的理由說明爲什麼不能以PhpMyAdmin實現設計工具和附加功能的方式來完成。 –

0

phpMyAdmin作爲某個MySQL用戶連接到數據庫。如果該用戶對給定表沒有任何權限,則phpMyAdmin用戶不能訪問該表。那當然會持有全部 mypMyAdmin用戶。

8

是的,你可以在phpmyadmin中隱藏一個特定的數據庫。
爲了做到這一點,只需打開config.inc.php在您的phpmyadmin目錄在您的Web服務器根目錄或它的位置。或搜索的config.inc.php
如果你想隱藏INFORMATION_SCHEMAmysql的後添加此行:

$cfg['Servers'][$i]['extension'] = 'mysql'; 
$cfg['Servers'][$i]['hide_db'] = '^information_schema|mysql$'; 

這是它。

+0

謝謝,這幫助了我! – EmmanuelB

相關問題