Permissions

phpMyAdmin 成功刪除表記錄後出現奇怪的權限#1142 錯誤!

  • July 13, 2018

A 有一個帶有NginxPHP(多個版本)、MySQL 5.7.18 和最新(寫這個問題時)phpMyAdmin 4.7.0的實時/生產**CentOS 6.8伺服器。

這台伺服器已經執行了很多年並且沒有出現任何問題,但是最近我在嘗試使用 phpMyAdmin 從表中刪除記錄時發現了一個問題,出現以下錯誤:

#1142 - 表 ‘pma__tracking’ 拒絕使用者 ’test_user’@’localhost’ 的 SELECT 命令

奇怪的是它刪除了記錄,但刪除後無法刷新結果!此外,所有 SELECT 查詢都能正常工作,並且每次數據瀏覽都會成功獲取每個表上的數據!

我讓每個數據庫都有自己的使用者,並授予所有權限。

我已經正確安裝$cfg['Servers'][$i]['controluser']並且$cfg['Servers'][$i]['controlpass']所有表都存在於$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';數據庫中。

我的問題是,為什麼會發生這種情況,我該如何解決?這對我來說很奇怪,因為我希望在 phpMyAdmin 配置中定義的使用者應該訪問pmadb( 'pma'@'localhost') 和其中的表,而不是連接到數據庫的使用者!

這是 PMA 4.7.0 的錯誤。這是錯誤跟踪https://github.com/phpmyadmin/phpmyadmin/issues/13214

如果有人來這裡遇到與 PMA 4.7.0 相同的問題,請打開PMA/libraries/Tracker.php並更改以下行:

Index: Tracker.php
===================================================================

// - Remove/Comment
$result = $GLOBALS['dbi']->fetchValue($sql_query);

// + Add
$row = $GLOBALS['dbi']->fetchArray(PMA_queryAsControlUser($sql_query));

// - Remove/Comment
return ($result == 1);

// + Add
return isset($row[0])
   ? $row[0]
   : -1;

引用自:https://dba.stackexchange.com/questions/172438