Phpmyadmin
phpMyAdmin 中的預設使用者組
我正在為共享主機設置多使用者環境。從 phpMyAdmin 4.1.0 開始,可以創建使用者組,向其中添加使用者並定義他們可以使用的功能。
現在這是一個很棒的功能,但是如果新的 MySQL 使用者在第一次登錄 phpMyAdmin 時獲得一個預設使用者組會更好。我還沒有在 phpma 中看到這個設置(到目前為止),所以我想問你是否知道這在 phpma 中是否可行,或者我是否可以在 phpma 的 php 文件中設置預設使用者組?
提前致謝!
我想出了自己的解決方案(但如果您認為這可以做得更好,請發布您的選項):
在文件 /libraries/Menu.class.php 我改變了……
if (isset($cfgRelation['menuswork']) && $cfgRelation['menuswork']) {
… 和
$groupTable = PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) . "." . PMA_Util::backquote($GLOBALS['cfg']['Server']['usergroups']); $userTable = PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) . "." . PMA_Util::backquote($GLOBALS['cfg']['Server']['users']); if (!empty($GLOBALS['cfg']['Server']['users']) && !empty($GLOBALS['cfg']['Server']['usergroups'])) { $defaultUserGroup = 'User'; $all_mysql_users = PMA_queryAsControlUser("SELECT User FROM mysql.user GROUP BY User", false); $all_phpma_users = PMA_queryAsControlUser("SELECT username FROM " . $userTable . " WHERE `usergroup` != ''", false); if ($all_mysql_users) { $default_user_group = PMA_queryAsControlUser("SELECT `usergroup` FROM " . $groupTable . " WHERE `usergroup` LIKE '" . $defaultUserGroup . "' LIMIT 1", false); if ($default_user_group) { $default_user_group = $GLOBALS['dbi']->fetchAssoc($default_user_group); $allPhpmaUsers = array(); while ($phpma_user = $GLOBALS['dbi']->fetchAssoc($all_phpma_users)) $allPhpmaUsers[] = $phpma_user['username']; while ($mysql_user = $GLOBALS['dbi']->fetchAssoc($all_mysql_users)) { if (!in_array($mysql_user['User'], $allPhpmaUsers)) PMA_setUserGroup($mysql_user['User'], $default_user_group['usergroup']); } } } } if (isset($cfgRelation['menuswork']) && $cfgRelation['menuswork']) {
然後我換了…
if (isset($cfgRelation['menuswork']) && $cfgRelation['menuswork']) { $groupTable = PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) . "." . PMA_Util::backquote($GLOBALS['cfg']['Server']['usergroups']); $userTable = PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) . "." . PMA_Util::backquote($GLOBALS['cfg']['Server']['users']); $sql_query = "SELECT `tab` FROM " . $groupTable
… 和
if (isset($cfgRelation['menuswork']) && $cfgRelation['menuswork']) { $sql_query = "SELECT `tab` FROM " . $groupTable
然後我創建了一個具有所有權限的使用者組“Admin”,將 root 使用者放入這個 Admin 組。最後我創建了一個權限較少的使用者組“使用者”,刷新了頁面,所有其他使用者都有這個組。按此順序執行此操作**很重要,因為否則 root 使用者也將獲得“使用者”權限。**當該組無法編輯使用者設置時,您無法從 phpMyAdmin 中將其更改回來。