| | |
| | | $result->free(); |
| | | } |
| | | } |
| | | |
| | | $app->log("Calling $action for $database_name with access $user_access_mode and hosts " . implode(', ', $host_list), LOGLEVEL_DEBUG); |
| | | |
| | | // loop through hostlist |
| | | foreach($host_list as $db_host) { |
| | | $db_host = trim($db_host); |
| | |
| | | $valid = false; |
| | | } |
| | | |
| | | if($valid == false) continue; |
| | | if($valid == false) { |
| | | $app->log("Invalid host " . $db_host . " for GRANT to " . $database_name, LOGLEVEL_DEBUG); |
| | | continue; |
| | | } |
| | | |
| | | $grants = 'ALL'; |
| | | $grants = 'ALL PRIVILEGES'; |
| | | if($user_access_mode == 'r') $grants = 'SELECT'; |
| | | elseif($user_access_mode == 'rd') $grants = 'SELECT, DELETE, ALTER, DROP'; |
| | | |
| | | if($action == 'GRANT') { |
| | | if(!$link->query("GRANT " . $grants . " ON `".$link->escape_string($database_name)."`.* TO '".$link->escape_string($database_user)."'@'$db_host' IDENTIFIED BY PASSWORD '".$link->escape_string($database_password)."';")) $success = false; |
| | | $app->log("GRANT " . $grants . " ON `".$link->escape_string($database_name)."`.* TO '".$link->escape_string($database_user)."'@'$db_host' IDENTIFIED BY PASSWORD '".$link->escape_string($database_password)."'; success? " . ($success ? 'yes' : 'no'), LOGLEVEL_DEBUG); |
| | | if($user_access_mode == 'r' || $user_access_mode == 'rd') { |
| | | if(!$link->query("REVOKE ALL PRIVILEGES ON `".$link->escape_string($database_name)."`.* FROM '".$link->escape_string($database_user)."'@'$db_host'")) $success = false; |
| | | $app->log("REVOKE ALL PRIVILEGES ON `".$link->escape_string($database_name)."`.* FROM '".$link->escape_string($database_user)."'@'$db_host' success? " . ($success ? 'yes' : 'no'), LOGLEVEL_DEBUG); |
| | | $success = true; |
| | | } |
| | | |
| | | if(!$link->query("GRANT " . $grants . " ON `".$link->escape_string($database_name)."`.* TO '".$link->escape_string($database_user)."'@'$db_host' IDENTIFIED BY PASSWORD '".$link->escape_string($database_password)."'")) $success = false; |
| | | $app->log("GRANT " . $grants . " ON `".$link->escape_string($database_name)."`.* TO '".$link->escape_string($database_user)."'@'$db_host' IDENTIFIED BY PASSWORD '".$link->escape_string($database_password)."' success? " . ($success ? 'yes' : 'no'), LOGLEVEL_DEBUG); |
| | | } elseif($action == 'REVOKE') { |
| | | if(!$link->query("REVOKE ALL PRIVILEGES ON `".$link->escape_string($database_name)."`.* FROM '".$link->escape_string($database_user)."'@'$db_host' IDENTIFIED BY PASSWORD '".$link->escape_string($database_password)."';")) $success = false; |
| | | if(!$link->query("REVOKE ALL PRIVILEGES ON `".$link->escape_string($database_name)."`.* FROM '".$link->escape_string($database_user)."'@'$db_host'")) $success = false; |
| | | } elseif($action == 'DROP') { |
| | | if(!$link->query("DROP USER '".$link->escape_string($database_user)."'@'$db_host';")) $success = false; |
| | | if(!$link->query("DROP USER '".$link->escape_string($database_user)."'@'$db_host'")) $success = false; |
| | | } elseif($action == 'RENAME') { |
| | | if(!$link->query("RENAME USER '".$link->escape_string($database_user)."'@'$db_host' TO '".$link->escape_string($database_rename_user)."'@'$db_host'")) $success = false; |
| | | } elseif($action == 'PASSWORD') { |
| | | if(!$link->query("SET PASSWORD FOR '".$link->escape_string($database_user)."'@'$db_host' = '".$link->escape_string($database_password)."';")) $success = false; |
| | | if(!$link->query("SET PASSWORD FOR '".$link->escape_string($database_user)."'@'$db_host' = '".$link->escape_string($database_password)."'")) $success = false; |
| | | } |
| | | } |
| | | |