MySQL Benutzerverwaltung

Diverse MySQL Kommandos um Zugriffsrechte in MariaDB/MySQL Datenbanken zu verwalten

Alle Kommandos müssen in einer MySQL-Shell

mysql -uroot -p

ausgeführt und mit

FLUSH PRIVILEGES;

bestätigt werden.

root Passwort ändern

ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypassword';

root Passwort zurücksetzen, falls nicht mehr bekannt

Server stoppen und im Safe-Mode starten:

/bin/systemctl stop mariadb.service
mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root

neues Passwort setzen:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new123';
FLUSH PRIVILEGES;
exit;

Server wieder stoppen (mit neuem Passwort) und regulär neu starten

mysqladmin -u root -p shutdown
/bin/systemctl start mariadb.service

Zugriffsrechte für einen Benutzer ansehen

SHOW GRANTS FOR 'root'@'localhost';

Datenbank und neuen Benutzer erstellen, der nur auf diese DB zugreifen darf

CREATE DATABASE testdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON testdb.* TO testuser@localhost IDENTIFIED BY 'mypassword';

Root-Benutzer darf mysql-Shell ohne Passwort starten

GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` IDENTIFIED VIA mysql_native_password USING password('mypassword') OR unix_socket WITH GRANT OPTION;

Root-Benutzer benötigt Passwort für mysql-Shell

GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` IDENTIFIED BY 'mypassword' WITH GRANT OPTION;