Rechte um neuen Benutzer anlegen

Hallo,

ich möchte über PHP einen MySQL-Benutzer anlegen. Da ich in dem Script den Benutzer root aus Sicherheitsgründen nicht benutzen kann, habe ich einen extra Benutzer angelegt. Und habe ihm für die Befehele

CREATE USER '\*ben\*'@'localhost' IDENTIFIED BY '\*pw\*';

GRANT USAGE ON \* . \* TO '\*ben\*'@'localhost' IDENTIFIED BY '\*pw\*' 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 `*db*`;

die Rechte Administration: GRANT, CREATE USER, Struktur: CREATE und auf die Datenbank mysql: UPDATE gegeben.

Wenn ich nun

GRANT ALL PRIVILEGES ON `*db*` . \* TO '\*ben\*'@'localhost';

ausführen will, kommt die Meldung:
ERROR 1044 (42000): Access denied for user ‚useradd‘@‚localhost‘ to database ‚*db*‘

Welche Rechte muss ich nun allgemein oder auf welche DB geben, damit der Befehl funktioniert?

Gruß, sagitta1793

Hallo,

ich möchte über PHP einen MySQL-Benutzer anlegen. Da ich in
dem Script den Benutzer root aus Sicherheitsgründen nicht
benutzen kann, habe ich einen extra Benutzer angelegt. Und
habe ihm für die Befehele

CREATE USER ‚*ben*‘@‚localhost‘ IDENTIFIED BY ‚*pw*‘;

GRANT USAGE ON * . * TO ‚*ben*‘@‚localhost‘ IDENTIFIED BY
‚*pw*‘ 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 *db*;

die Rechte Administration: GRANT, CREATE USER, Struktur:
CREATE und auf die Datenbank mysql: UPDATE gegeben.

Wenn ich nun

GRANT ALL PRIVILEGES ON *db* . * TO ‚*ben*‘@‚localhost‘;

ausführen will, kommt die Meldung:
ERROR 1044 (42000): Access denied for user
‚useradd‘@‚localhost‘ to database ‚*db*‘

useradd hat nicht alle rechte richtig ? du willst sie ja einschränken richtig ?
wie soll der user dann GRANT ALL PRIVILEGES machen ?
nur mal von der logic aus gesehen, er hat schon nicht alle grants, wie soll er all verteilen dürfen lol.
Es geht, aber eben nicht so , sondern wenn über eine function die ausgeführt wird mit systemrechten , aber das ist was anderes.

Probier mal nur das zu granten, was dein user auch selebr inne hat.

Welche Rechte muss ich nun allgemein oder auf welche DB geben,
damit der Befehl funktioniert?

Gruß, sagitta1793

Probier mal nur das zu granten, was dein user auch selebr inne hat.

Perfekt, genau das war der Fehler. Vielen Dank :wink:

Gruß, sagitta1793