Ich verwende: mysql 5.5.43-0 auf Ubuntu 14.04.1
Ich versuche einen neuen Admin-Benutzer (Admin) anzulegen, der folgende Dinge tun darf:
- a) Anlegen eines neuen Benutzers (dbuser1) mit Passwort - (Berechtigung "Benutzer anlegen" -> funktioniert)
- b Passwort für neu erstellten Benutzer festlegen - (Berechtigung „Einfügen/Aktualisieren der Tabelle mysql.user“ -> funktioniert)
- c Nutzungsrechte für alle Tabellen - (GRANT USAGE ON.TO 'dbuser1'@'localhost' IDENTIFIZIERT DURCH ... -> funktioniert)
- d neue Datenbank erstellen (db4user1) - (Berechtigung "Erstellen" -> funktioniert)
- e Erteilen aller Rechte - (GRANT ALL PRIVILEGES ON
db4user1
.* TO 'dbuser1'@'localhost';) - (Berechtigungserteilung für Admin -> funktioniert nicht)
Ich hatte das Problem mit Schritt e.
Mysql zeigt den folgenden Fehler an: #1044 - Zugriff für Benutzer 'admin'@'localhost' auf Datenbank 'db4user1' verweigert
Frage: Welche zusätzlichen Berechtigungen/Privilegien benötigt mein Administrator, um die oben genannten Aktionen und nicht mehr auszuführen?
Ich glaube, mein Administratorbenutzer hatte alle Berechtigungen, um einem bestehenden Benutzer Zugriff auf eine neu erstellte Datenbank zu gewähren ...
Aber es hat nicht funktioniert.
Vielen Dank für Ihre Hilfe
Stephan
CREATE USER 'dbuser1'@'localhost' IDENTIFIED BY 'password1234'
SET PASSWORD FOR 'dbuser1'@'localhost' = PASSWORD('password5678')
GRANT USAGE ON *.* TO 'dbuser1'@'localhost' IDENTIFIED BY 'password5678' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS `db4user1`;
GRANT ALL PRIVILEGES ON `db4user1`.* TO 'dbuser1'@'localhost';
-> #1044 - Zugriff für Benutzer „admin“@„localhost“ auf Datenbank „db4user1“ verweigert
Antwort1
Für mich sieht es so aus, als ob Sie lediglich einen weiteren Administrator wie den Standardadministrator erstellen möchten root
. Sie können daher eine einfache Syntax wie diese verwenden:
GRANT ALL ON *.* TO admin@localhost IDENTIFIED BY 'passwd5678' WITH GRANT OPTION;
Antwort2
Die Mindestanforderung, um einem bestimmten Benutzer ( admin
hier) ausreichende Rechte zu erteilen, um alle Berechtigungen für eine bestimmte Datenbank (hier) gewähren zu können, db4user1
lautet:
GRANT DROP ,
REFERENCES ,
INDEX ,
ALTER ,
CREATE TEMPORARY TABLES ,
LOCK TABLES ,
CREATE VIEW ,
EVENT,
TRIGGER,
SHOW VIEW ,
CREATE ROUTINE,
ALTER ROUTINE,
EXECUTE ON `db4user1` . * TO 'admin'@'localhost' WITH GRANT OPTION ;
Fast alles...außer:
Create
(Strukturumfang)Select
,Insert
,Update
,Delete
(Datenumfang)
Von hier aus verwenden Sie admin
den Benutzer:
mysql> GRANT ALL PRIVILEGES ON db4user1.* TO 'dbuser1'@'localhost';
Query OK, 0 rows affected (0.00 sec)
Ich gebe zu, dass ich keine Dokumente dazu gefunden habe. Ich habe in der Vergangenheit viel Zeit damit verbracht, alle Möglichkeiten durch Ausschlussverfahren nacheinander zu testen ...