MySQL Frage zur Rechtevergabe (gelöst)



  • Hallo allerseits,

    ich möchte einem user 'xy' den Lesezugriff auf eine Tabelle erlauben, und zusätzlich soll er die Werte in der Spalte 'ABC' ändern dürfen. Aber nur in dieser Spalte.
    Geht das auf dem MySQL-Server, oder muß ich das in meinem Clientprogramm lösen?

    C-Bär



  • Du kannst nur Rechte für die Datenbank und Tabellen
    aber nicht für einzelne Spalten festlegen.



  • hatte ich befürchtet das das nicht gehen wird.
    Dann werde ich es im Client abfangen, wenn der User schreibend auf die Tabelle zugreift.

    C-Bär



  • hab ich grade im MySQL-Handbuch gefunden.
    Liest sich erst mal interessant.

    Berechtigungen können auf unterschiedlichen Ebenen gewährt werden

    • Spaltenebene
    Spaltenberechtigungen gelten für einzelne Spalten in einer gegebenen Tabelle. Sie werden in der Tabelle mysql.
    columns_priv gespeichert. Wenn Sie REVOKE verwenden, müssen Sie dieselben Spalten angeben, denen die Berechtigungen
    zuvor gewährt wurden.

    C-Bär



  • RED-BARON schrieb:

    Du kannst nur Rechte für die Datenbank und Tabellen
    aber nicht für einzelne Spalten festlegen.

    Wo hast Du das her.
    Stimmt doch garnicht.
    Klar geht das bei MySQL.



  • gute Frage, hab nur fix in phpMyAdmin rumgestochert
    und vermutlich keine Möglichkeit gefunden 😕

    Aber gut, wieder was gelernt 😃



  • danke für Eure Antworten.
    Hab`s jetzt gefunden wie es geht.

    GRANT berechtigung_art [(spalte)] ON {datenbank.tabelle}TO benutzername;

    Beispiel:
    User = Hans_Wurst
    Datenbank = Fahrzeuge
    Tabelle = Pkw

    Gewährung von UPDATE nur auf Spalte 'Reifen'
    GRANT UPDATE (Reifen) ON Fahrzeuge.Pkw TO Hans_Wurst;

    C-Bär


Anmelden zum Antworten