Joerg: [MySQL] Password per-database ?

Hi,

wenn ich in MySQL einen User/password erzeuge, dann mache ich das ueblicherweise so:

use mysql;
grant select,insert,update on mydb1.* to thisuser identified by 'ThatPassword';

Das Problem dabei ist, dass dieses password fuer _alle_ Zugaenge von 'thisuser' auf diesem Server gilt ... d.h. wenn ich ihm in derselben Art einen Zugang auf eine weitere Datenbank gebe:

grant select,insert,update on mydb2.* to thisuser identified by 'OtherPassword';

... dann ist damit natuerlich auch das Passwort fuer den Zugang auf mydb1 geaendert!

Frage: Wie vergebe ich in MySQL ein Password "per-database" ?

(Ja, hab schon im Archiv und auf mysql.com gesucht ... ;-)

Danke fuer jede info,

  • Joerg
  1. Hello,

    Frage: Wie vergebe ich in MySQL ein Password "per-database" ?

    Wie wäre es mit einem anderen Usernamen?

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Re-Hi,

      Frage: Wie vergebe ich in MySQL ein Password "per-database" ?

      Wie wäre es mit einem anderen Usernamen?

      Yep, da habe ich auch schon dran gedacht. In diesem Fall waere das allerdings unpraktisch bzw. unschoen ... :-(

      Gruss,

      • Joerg
      1. Hello,

        Wie wäre es mit einem anderen Usernamen?

        Yep, da habe ich auch schon dran gedacht. In diesem Fall waere das allerdings unpraktisch bzw. unschoen ... :-(

        Alles andere wäre eine Vergewaltigung des Systems.

        Das Passwort ist als Schlüsselergänzug eines zweiteiligen Schlüssels direkt dem User zugeordnet.
        Die Identifikatioen findet aber einzig über den Usernamen statt.

        Die Rechte hängen direkt am Usernamen

        Da auch der User wissen sollte, welche Rechte (und Pflichten) er mit dem Account übernimmt, solltest Du den Usernamen einfach über ein DB-Synonym ergänzen, also z.B:

        klaus_meyer_kunden
          klaus_meyer_produkte

        Das sind für den User quasi seine Arbeitsbereiche.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
  2. hi,

    Das Problem dabei ist, dass dieses password fuer _alle_ Zugaenge von 'thisuser' auf diesem Server gilt ... d.h. wenn ich ihm in derselben Art einen Zugang auf eine weitere Datenbank gebe:
    grant select,insert,update on mydb2.* to thisuser identified by 'OtherPassword';
    ... dann ist damit natuerlich auch das Passwort fuer den Zugang auf mydb1 geaendert!

    works as designed, würde ich sagen - http://dev.mysql.com/doc/mysql/en/grant.html:

    In MySQL 3.22.12 or later, if a new user is created or if you have global grant privileges, the user's password is set to the password specified by the IDENTIFIED BY clause, if one is given. If the user had a password, it is replaced by the new one.

    Frage: Wie vergebe ich in MySQL ein Password "per-database" ?

    wenn ich mir unter  http://dev.mysql.com/doc/mysql/en/privileges.html den aufbau der tabellen user, db und host anschaue, habe ich echte zweifel, ob mysql das unterstützt.
    db enthält nur die "scope columns" Host, Db und User.
    das passwort des users wiederum steht aber in der user-tabelle, und nicht in db.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }