Thomas Schmieder: MySQL, Zugriffsrechte für neuen User

Guten Hallo,

ich habe mich heute mit dem Anlegen der Rechte für einen neuen User verzettelt. Nachdem ich mal eben als erstes an der Konsole des Servers als root mit DB-rootrechten den Befehl "grant ? <RETURN>" eingegeben hatte, durfte DB-root nix mehr... Zum Glück gibts ja Bücher. War dann schnell repariert.

Mit Hilfe von MySQL-Front haben wir dann  versucht, für eine spezielle DB "Supervisor" zu erzeugen, also User, die für DIESE DB auch wieder User anlegen dürfen und Rechte festlegen können. Irgendwie habe ich mich im Dschungel verlaufen.

Kann kir jemand sagen, ob das bei MySQL überhaupt möglich ist und in welchen Tabellen von mysql dann welche Rechte gesetzt werden müssen. Der "Supervisor" soll in keiner anderen Datenbank Rechte haben und auch keine User für andere Datenbanken sehen und/oder verändern können.

hopeful waiting for response

Tom

--
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
  1. Hallo!

    Kann kir jemand sagen, ob das bei MySQL überhaupt möglich ist und in welchen Tabellen von mysql dann welche Rechte gesetzt werden müssen. Der "Supervisor" soll in keiner anderen Datenbank Rechte haben und auch keine User für andere Datenbanken sehen und/oder verändern können.

    In der Datenbank "mysql" werden alle Userdaten abgelegt. Ich glaueb die Tabelle "user".

    GRANT ALL ON db1.* TO thomas@loaclhost IDENTIFIED BY 'schmieder';

    Folgendes SQL-Statement besagt:

    Der User 'thomas' und dem Passwort 'schmieder', darf alles (SELECET bis DELETE) mit allen Tabellen in der Datenbank 'db1' tun. Dieser User hat nicht die Rechte bekommen, Rechte zu verteilen. Dafür hätte man noch zusätlich "WITH GRANT OPTION" schreiben müßen.

    http://www.mysql.de/documentation/mysql/bychapter/manual.de_MySQL_Database_Administration.html#GRANT

    Nach GRANT natürlich

    FLUSH PRIVILEGES;

    ausführen.

    Du kannst auch direkt die Usertabellen bearbeiten.

    Beispiel aus MySQL-Doku: UPDATE user SET Password=PASSWORD('neues_passwort') WHERE user='root';

    MfG, André Laugks
    L-Andre @ gmx.de

    1. Hallo André,

      GRANT ALL ON db1.* TO thomas@loaclhost IDENTIFIED BY 'schmieder' WITH GRANT OPTION;

      FLUSH PRIVILEGES;

      Ich war der meinung, dass MySQL-Front genau dieses SQL-Statement erzeugt hatte, aber trotzdem bekem wir immer nur ne Fehlernummer. Der Mensch kann irren, deshalb teste ich das nochmal jetzt.

      Danke erstmal. Bis gleich.

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
      1. Hallo André,
        hallo Forum,

        es funktioniert leider nicht wie erwartet.

        als root:

        GRANT ALL ON db1.* TO thomas@'192.168.101.%' IDENTIFIED BY 'thomas' WITH GRANT OPTION;

        FLUSH PRIVILEGES;

        Wenn dan anschließend vom User "thomas" versucht wird, selber einen User für die Datenbank "db1" anzulegen, gibts immer diese Fehlermeldung:

        Error: 1044 - Access denied for user: 'thomas@192.168.101.25' to database 'mysql'

        Deshalb ja meine Frage, welche Rechte denn für einen Grantor in der mysql eingetragen werden müssen. Lasst mich bite nicht hängen und kamt mal in Euren Erinnerugnen. Vielleicht ist es ja auch mal wieder ein Versionsproblem?

        Noch mehr liebe Grüße aus http://www.braunschweig.de

        Tom

        1. Hallo!

          GRANT ALL ON db1.* TO thomas@'192.168.101.%' IDENTIFIED BY 'thomas' WITH GRANT OPTION;

          Versuche mal:

          GRANT ALL ON db1.* TO 'thomas'@'192.168.101.%' IDENTIFIED BY 'thomas' WITH GRANT OPTION;

          Error: 1044 - Access denied for user: 'thomas@192.168.101.25' to database 'mysql'

          Hast Du mal geschaut, ob der User 'thomas' in der Tabelle "user" steht? Steht in der Spalte "Grant_priv" ein Y oder N?

          Ich hatte glaube auch mal eine garstige Version. Ich habe dann den MySQL-Server neu gestartet.

          MfG, André Laugks
          L-Andre @ gmx.de

          1. Guten Morgen,

            GRANT ALL ON db1.* TO thomas@'192.168.101.%' IDENTIFIED BY 'thomas' WITH GRANT OPTION;
            Error: 1044 - Access denied for user: 'thomas@192.168.101.25' to database 'mysql'

            Versuche mal:

            GRANT ALL ON db1.* TO 'thomas'@'192.168.101.%' IDENTIFIED BY 'thomas' WITH GRANT OPTION;

            Es gibt keine Fehlermeldung. Der User wird von root auch problemlos angelegt. Nur darf er nachher selber nicht als Grantor tätig werden.

            Hast Du mal geschaut, ob der User 'thomas' in der Tabelle "user" steht? Steht in der Spalte "Grant_priv" ein Y oder N?

            Ich werde heute mal von einem "testroot" nach und nach alle Rechte entfernen und dann schauen, wann es anfängt zu kneifen. Hätte ja gehofft, dass es hier jemand weiß. Die Version ist  select version()
            3.23.37-log

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen. Und Ausdauer sollte man nicht unterschätzen!