From 8ff10f99dc4cfe2af9f12ab18cd816cf9a6f534f Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Wed, 11 Aug 2010 17:14:07 +0200 Subject: [PATCH] Remove DEFINER from CREATE VIEW (bug #3041130) --- adminer/include/export.inc.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/adminer/include/export.inc.php b/adminer/include/export.inc.php index 74d6c8b4..052ab975 100644 --- a/adminer/include/export.inc.php +++ b/adminer/include/export.inc.php @@ -22,6 +22,10 @@ function dump_table($table, $style, $is_view = false) { if ($style == "DROP+CREATE") { echo "DROP " . ($is_view ? "VIEW" : "TABLE") . " IF EXISTS " . table($table) . ";\n"; } + if ($is_view) { + // remove DEFINER with current user + $create = preg_replace('~^([A-Z =]+) DEFINER=`' . str_replace("@", "`@`", logged_user()) . '`~', '\\1', $create); //! proper escaping of user + } echo ($style != "CREATE+ALTER" ? $create : ($is_view ? substr_replace($create, " OR REPLACE", 6, 0) : substr_replace($create, " IF NOT EXISTS", 12, 0))) . ";\n\n"; } if ($style == "CREATE+ALTER" && !$is_view) {