{"id":4491,"date":"2018-10-10T14:28:40","date_gmt":"2018-10-10T12:28:40","guid":{"rendered":"http:\/\/speefak.spdns.de\/oss_lifestyle\/?p=4491"},"modified":"2024-10-13T15:58:38","modified_gmt":"2024-10-13T13:58:38","slug":"mysql-mariadb-root-account-neu-erstellen","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/mysql-mariadb-root-account-neu-erstellen\/","title":{"rendered":"MySQL\/MariaDB Root Account neu erstellen"},"content":{"rendered":"<p>Wurde der Root Account des MySQL Servers besch\u00e4digt, gel\u00f6scht oder dessen Rechte falsch vergeben und somit ein Rootzugriff auf den Server nicht mehr m\u00f6glich ist, kann der MySQL Server ohne Rechteverwaltung gestartet werden. S\u00e4mtliche Rechte und Zugriffsbeschr\u00e4nkungen des Servers und der Accounts werden damit ignoriert:<\/p>\n<pre class=\"lang:sh decode:true\">service mysql stop &amp;&amp; mysqld_safe --skip-grant-tables &amp;<\/pre>\n<p>Jetzt ist ein Login f\u00fcr jeden MySQL Nutzer ohne Passwortabfrage auf dem Server m\u00f6glich.<\/p>\n<pre class=\"lang:sh decode:true\">mysql -uroot<\/pre>\n<p>Eine \u00dcbersicht der MySQL Nutzer, aktivierten Plugins und Passwort Hashes wird mit folgendem Befehl angezeigt:<\/p>\n<pre class=\"lang:sh decode:true\">select user,host from mysql.user;<\/pre>\n<p>Der Root Account samt Konfiguration wird nun vollst\u00e4ndig gel\u00f6scht:<\/p>\n<pre class=\"lang:sh decode:true \">DELETE FROM mysql.user \r\nWHERE  user = 'root' \r\n       AND host = 'localhost'; \r\n<\/pre>\n<p>und neu erstellt (ohne Passwort, da das unix_socket_plugin aktiviert wird):<\/p>\n<pre class=\"lang:sh decode:true\">INSERT INTO mysql.user \r\nSET user = 'root', \r\n    host = 'localhost', \r\n    password = Password(''), \r\n    Select_priv = 'y',\r\n    Insert_priv = 'y',\r\n    Update_priv = 'y',\r\n    Delete_priv = 'y',\r\n    Create_priv = 'y',\r\n    Drop_priv = 'y',\r\n    Reload_priv = 'y',\r\n    Shutdown_priv = 'y',\r\n    Process_priv = 'y',\r\n    File_priv = 'y',\r\n    Grant_priv = 'y',\r\n    References_priv = 'y',\r\n    Index_priv = 'y',\r\n    Alter_priv = 'y',\r\n    Show_db_priv = 'y',\r\n    Super_priv = 'y',\r\n    Create_tmp_table_priv = 'y',\r\n    Lock_tables_priv = 'y',\r\n    Execute_priv = 'y',\r\n    Repl_slave_priv = 'y',\r\n    Repl_client_priv = 'y',\r\n    Create_view_priv = 'y',\r\n    Show_view_priv = 'y',\r\n    Create_routine_priv = 'y',\r\n    Alter_routine_priv = 'y',\r\n    Create_user_priv = 'y',\r\n    Event_priv = 'y',\r\n    Trigger_priv = 'y',\r\n    Create_tablespace_priv = 'y';\r\n    flush privileges;\r\n    Exit;<\/pre>\n<p>Der MySQL Root Account ist jetzt nur noch ohne Passworteingabe \u00fcber eine Root Shell erreichbar.<\/p>\n<pre class=\"lang:sh decode:true\">sudo mysql -u root<\/pre>\n<hr \/>\n<h2>Das Unix Socket Plugin<\/h2>\n<p>Die Aktivierung des Unix Socket Plugins f\u00fcr den MySQL Root Account hat zur Folge, dass ein MySQL Root Login nur noch \u00fcber die Root Shell m\u00f6glich ist. Der Vorteil ist ein Login \u00fcber eine Root Shell ohne Passworteingabe (au\u00dfer der f\u00fcr die Root Shell). Daf\u00fcr ist ein Login \u00fcber phpAdmin \/ Adminer oder ein direkter Login \u00fcber den MySQL Port als Root nicht mehr m\u00f6glich. Eine Re\/Aktivierung des Unix_socket Plugins f\u00fcr den Root Account sowie das Deaktivieren des Root Passwortes kann mit folgenden Befehlen erreicht werden:<\/p>\n<pre class=\"theme:dark-terminal lang:sh decode:true\">sudo mysql -u root\r\nSET PASSWORD FOR root@localhost=PASSWORD('');\r\nselect user,host,password,plugin from mysql.user;\r\nupdate mysql.user set plugin='unix_socket' where user='root'; \r\nflush privileges;<\/pre>\n<hr \/>\n<h2>Zweiten Root Account f\u00fcr Passwort Logins<\/h2>\n<p>Aufgrund einiger Systemroutinen des Debian Host OS, die einen MySQL Root Account ohne Passwort, daf\u00fcr aber mit aktivierten Unix Socket Plugin ben\u00f6tigen, ist die Passwortvergabe f\u00fcr den Root Account nicht ratsam. Um das phpMyAdmin \/ Adminer Frontend in Verbindung mit dem MySQL Server und Root Rechten nutzen zu k\u00f6nnen ben\u00f6tigt phpMyAdmin \/ Adminer jedoch einen passwortgesch\u00fctzten Root Account und Zugriff \u00fcber das Loop Back Interface (Host = 127.0.0.1) oder die IP (Host = %) statt der MySQL Socket Datei (Host = localhost); ( IPv6 Zugriff : Host ::1 ) . Um phpMyAdmin \/ Adminer mit Root Rechten nutzen zu k\u00f6nnen wird daher ein weiterer passwortgesch\u00fctzter Root Account angelegt:<\/p>\n<pre class=\"lang:sh decode:true \">CREATE USER 'root2'@'localhost' IDENTIFIED BY 'password';\r\nGRANT ALL PRIVILEGES ON *.* TO 'root2'@'localhost' WITH GRANT OPTION;\r\nExit;<\/pre>\n<p>Somit ist ein Login \u00fcber phpMyAdmin \/ Adminer mit dem zweiten, passwortgesch\u00fctzten Root Account m\u00f6glich.<\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/><span style=\"font-size: 10pt;\">by Speefak <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wurde der Root Account des MySQL Servers besch\u00e4digt, gel\u00f6scht oder dessen Rechte falsch vergeben und somit ein Rootzugriff auf den Server nicht mehr m\u00f6glich ist, kann der MySQL Server ohne Rechteverwaltung gestartet werden. S\u00e4mtliche Rechte und Zugriffsbeschr\u00e4nkungen des Servers und der Accounts werden damit ignoriert: service mysql stop &amp;&amp; mysqld_safe &#8211;skip-grant-tables &amp; Jetzt ist ein [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,92,52,40],"tags":[],"class_list":["post-4491","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-datenbanken","category-php-scripte","category-server"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/datenbanken\/\" rel=\"category tag\">Datenbanken<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/php-scripte\/\" rel=\"category tag\">PHP<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/server\/\" rel=\"category tag\">Server<\/a>","rttpg_excerpt":"Wurde der Root Account des MySQL Servers besch\u00e4digt, gel\u00f6scht oder dessen Rechte falsch vergeben und somit ein Rootzugriff auf den Server nicht mehr m\u00f6glich ist, kann der MySQL Server ohne Rechteverwaltung gestartet werden. S\u00e4mtliche Rechte und Zugriffsbeschr\u00e4nkungen des Servers und der Accounts werden damit ignoriert: service mysql stop &amp;&amp; mysqld_safe --skip-grant-tables &amp; Jetzt ist ein&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/4491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=4491"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/4491\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=4491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=4491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=4491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}