MySQL user anlegen und der Datenbank zuweisen... wie?

Diskutiere mit über: MySQL user anlegen und der Datenbank zuweisen... wie? im Web-Programmierung Forum

  1. balufreak

    balufreak Thread Starter MacUser Mitglied

    Beiträge:
    1.560
    Zustimmungen:
    28
    Registriert seit:
    12.10.2003
    Hallo leute!

    Ich habe jetzt mal php und mysql auf meinem pb installiert und konfiguriert. Jetzt ist meine Frage, wie kann ich einen mySQL benutzer hinzufügen und ihn an einer Datenbank zuteilen?

    greets balu
     
  2. Delmar

    Delmar MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    Registriert seit:
    28.09.2002
    Das geht relativ einfach mit dem phpMyAdmin. Auf der Startseite gibt einen Bereich
    "Rechte". Hier kannst Du Dich dann nach belieben austoben - achte aber darauf, dass
    Du die bestehenden Benutzer nicht änderst, geschweige denn löschst!
     
  3. balufreak

    balufreak Thread Starter MacUser Mitglied

    Beiträge:
    1.560
    Zustimmungen:
    28
    Registriert seit:
    12.10.2003
    geht es auch anderst, nicht über phpmyadmin??
     
  4. Delmar

    Delmar MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    Registriert seit:
    28.09.2002
    Sicher kannst Du das auch über das Terminal machen. Dazu muss ich
    aber leider passen. Schau Dich mal auf der MySQL Webseite um. Viel-
    leicht wirst Du da fündig.
     
  5. mactrisha

    mactrisha MacUser Mitglied

    Beiträge:
    674
    Medien:
    2
    Zustimmungen:
    4
    Registriert seit:
    27.11.2003
    Die unten stehenden Beispiele zeigen, wie man den mysql-Client benutzt, um neue Benutzer
    zu erzeugen. Die Beispiele setzen voraus, dass Berechtigungen mit den Vorgabewerten
    eingerichtet wurden, die im vorherigen Abschnitt beschrieben wurden. Um also ¨Anderungen
    machen zu k¨onnen, m¨ussen Sie sich von derselben Maschine aus verbinden, wo mysqld l¨auft,
    und Sie m¨ussen sich als MySQL-root-Benutzer verbinden, und der root-Benutzer muss
    die insert-Berechtigung f¨ur die mysql-Datenbank und die reload-Verwaltungsberechtigung
    haben. Wenn Sie bereits das root-Benutzerpasswort ge¨andert haben, m¨ussen Sie es f¨ur die
    unten stehenden mysql-Befehle eingeben.
    Sie f¨ugen neue Benutzer mit GRANT-Statements hinzu:

    shell> mysql --user=root mysql
    mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
    IDENTIFIED BY 'ein_passwort' WITH GRANT OPTION;
    mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
    IDENTIFIED BY 'ein_passwort' WITH GRANT OPTION;
    mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
    mysql> GRANT USAGE ON *.* TO dummy@localhost;

    Diese GRANT-Statements richten drei neue Benutzer ein:
    monty Einen echten Superuser, der sich von irgendwo her mit dem Server verbinden
    kann, aber das Passwort 'ein_passwort' daf¨ur verwenden muss. Beachten
    Sie, dass man GRANT-Statements sowohl f¨ur monty@localhost als auch f¨ur
    monty@"%" verwenden muss. Wenn man keinen Eintrag mit localhost
    hinzuf¨ugt, hat der Eintrag f¨ur den anonymen Benutzer f¨ur localhost Vorrang,
    der durch mysql_install_db angelegt wird, wenn man sich vom lokalen Host
    aus verbindet, weil dieser einen spezifischeren Host-Feldwert hat und daher
    fr¨uher in der user-Tabellen-Sortierreihenfolge auftaucht.
    admin Ein Benutzer, der sich ohne Passwort von localhost aus verbinden kann und
    der die reload- und process- Verwaltungsberechtigungen hat. Das erlaubt dem
    Benutzt, die mysqladmin reload-, mysqladmin refresh- und mysqladmin
    flush-*-Befehle sowie mysqladmin processlist auszuf¨uhren. Es werden
    keine Datenbank-bezogenen Berechtigungen gew¨ahrt. (Diese k¨onnen sp¨ater
    gew¨ahrt werden, indem zus¨atzliche GRANT-Statements ausgef¨uhrt werden.)
    dummy Ein Benutzer, der sich ohne Passwort verbinden kann, aber nur vom lokalen
    Host aus. Die globalen Berechtigungen sind alle auf 'N' gesetzt - diese USAGE-
    Berechtigung erlaubt Ihnen, einen Benutzer ohne Berechtigungen anzulegen.
    Es wird angenommen, dass Sie sp¨ater Datenbank-spezifische Berechtigungen
    gew¨ahren.
    Sie k¨onnen dieselben Benutzerzugri®sinformationen direkt mittels INSERT-Statements
    eingeben und dann den Server anweisen, die Berechtigungstabellen neu zu laden:

    shell> mysql --user=root mysql
    mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('ein_passwort'),
    'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
    mysql> INSERT INTO user VALUES('%','monty',PASSWORD('ein_passwort'),
    'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
    mysql> INSERT INTO user SET Host='localhost',User='admin',
    Reload_priv='Y', Process_priv='Y';
    mysql> INSERT INTO user (Host,User,Password)
    VALUES('localhost','dummy','');
    mysql> FLUSH PRIVILEGES;
    Abh¨angig von Ihrer MySQL-Version m¨ussen Sie oben eventuell eine andere Anzahl von
    'Y'-Werten eingeben (Versionen vor Version 3.22.11 hatten weniger Berechtigungsspalten).
    Beim admin-Benutzer wird die besser lesbare INSERT-Syntax benutzt, die ab Version 3.22.11
    verf¨ugbar ist.

    Beachten Sie, dass Sie f¨ur die Einrichtung eines Superusers lediglich einen user-
    Tabelleneintrag mit Berechtigungsfeldern einrichten m¨ussen, die auf 'Y' gesetzt sind. Es
    sind keine db- oder host-Tabelleneintr¨age n¨otig.
    The Berechtigungsspalten in der user-Tabelle wurden im letzten INSERT-Statement nicht
    explizit gesetzt (f¨ur den Benutzer dummy), daher erhalten diese Spalten ihren Vorgabewert
    von 'N'. Das ist dasselbe, was GRANT USAGE macht.
    Das folgende Beispiel f¨ugt einen Benutzer custom hinzu, der sich von localhost,
    server.domain und whitehouse.gov aus verbinden kann. Er will auf die bankkonto-
    Datenbank nur von localhost aus zugreifen, auf die spesen-Datenbank nur von
    whitehouse.gov aus und auf die kunde-Datenbank von allen drei Hosts aus. Er will von
    allen drei Hosts aus das Passwort dumm benutzen.
    Um die Berechtigungen dieses Benutzers mit GRANT-Statements einzurichten, geben Sie
    folgende Befehle ein:
    shell> mysql --user=root mysql
    mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    ON bankkonto.*
    TO custom@localhost
    IDENTIFIED BY 'dumm';
    mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    ON spesen.*
    TO custom@whitehouse.gov
    IDENTIFIED BY 'dumm';
    mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    ON kunde.*
    TO custom@'%'
    IDENTIFIED BY 'dumm';
    Der Grund, warum wir Grant-Statements f¨ur den Benutzer ’custom’ eingeben, ist, dass wir
    dem Benutzer Zugri® auf MySQL sowohl von der lokalen Maschine mit Unix-Sockets als
    auch von der entfernten Maschine ’whitehouse.gov’ ¨uber TCP/IP geben wollen.
    Um die Benutzerberechtigungen durch direkte ¨Anderungen an den Berechtigungstabellen
    einzugeben, geben Sie folgende Befehle ein (beachten Sie das FLUSH PRIVILEGES am Ende):
    shell> mysql --user=root mysql
    mysql> INSERT INTO user (Host,User,Password)
    VALUES('localhost','custom',PASSWORD('dumm'));
    mysql> INSERT INTO user (Host,User,Password)
    VALUES('server.domain','custom',PASSWORD('dumm'));
    mysql> INSERT INTO user (Host,User,Password)
    VALUES('whitehouse.gov','custom',PASSWORD('dumm'));
    mysql> INSERT INTO db
    (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
    Create_priv,Drop_priv)
    VALUES
    ('localhost','bankkonto','custom','Y','Y','Y','Y','Y','Y');
    mysql> INSERT INTO db
    (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
    Create_priv,Drop_priv)
    VALUES
    ('whitehouse.gov','spesen','custom','Y','Y','Y','Y','Y','Y');
    mysql> INSERT INTO db
    (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
    Create_priv,Drop_priv)
    VALUES('%','kunde','custom','Y','Y','Y','Y','Y','Y');
    mysql> FLUSH PRIVILEGES;
    Die ersten drei INSERT-Statements f¨ugen user-Tabelleneintr¨age hinzu, die dem Benutzer
    custom erlauben, sich von den verschiedenen Hosts aus mit dem gegebenen Passwort zu
    verbinden, gew¨ahren ihm aber keine Berechtigungen (alle Berechtigungen werden auf den
    Vorgabewert 'N' gesetzt). Die n¨achsten drei INSERT-Statements f¨ugen db-Tabelleneintr¨age
    hinzu, die custom Berechtigungen f¨ur die bankkonto-, spesen- und kunde-Datenbanken
    gew¨ahren, aber nur, wenn auf sie von den korrekten Hosts aus zugegri®en wird. Wie immer,
    wenn die Berechtigungstabellen direkt ver¨andert werden, muss dem Server gesagt werden,
    dass er sie neu laden muss (mit FLUSH PRIVILEGES), damit die Berechtigungs¨anderungen
    wirksam werden.
    Wenn Sie einem bestimmten Benutzer Zugri® von irgendeiner Maschine in einer gegebenen
    Dom¨ane geben wollen, k¨onnen Sie ein GRANT-Statement wie das folgende absetzen:
    mysql> GRANT ...
    ON *.*
    TO benutzername@"%.domaene.de"
    IDENTIFIED BY 'passwort';
    Um dasselbe durch direkte ¨Anderung der Berechtigungstabellen einzugeben, machen Sie
    folgendes:
    mysql> INSERT INTO user VALUES ('%.domaene.de', 'benutzername',
    PASSWORD('passwort'),...);
    mysql> FLUSH PRIVILEGES;


    Hi balufreak,

    das steht danzu in der MYSQL-Dok, ich hoffe es hilft dir, wenngleich die Umlaute beim rauskopieren irgendwie verschittgegangen sind. Mit phpmyadmin ist es übersichtlicher ;-)

    Salü,
    mactrisha.
     
  6. balufreak

    balufreak Thread Starter MacUser Mitglied

    Beiträge:
    1.560
    Zustimmungen:
    28
    Registriert seit:
    12.10.2003
    ja ich denke auch, dass es mit phpmyadmin leichter geht... nur habe ich auf der home seite kein link der 'rechte' heisst... darf ich denn die datenbanken nicht löschen, die mysql von sich aus erstellt?

    greets balu
     
  7. Delmar

    Delmar MacUser Mitglied

    Beiträge:
    803
    Zustimmungen:
    1
    Registriert seit:
    28.09.2002
     

    Die Datenbanken, die zu MySQL selber gehören, lässt Du am Besten
    schön in Ruhe! Da sind unter anderem Rechte und noch ein paar an-
    dere wichtige Informationen gespeichert.

    Welche Version des phpMyAdmin hast Du denn - bzgl. Rechte?! Die
    Bezeichnung und der Ort, an dem der Link liegt, ändert sich dummer-
    weise auch von Version zu Version.

    Und ... mit welchen Benutzer hast Du denn in der config.inc.php des
    phpMyAdmin angegeben? Wenn es nicht root war, kann es sein, dass
    Dein User nicht die Rechte hat, Rechte zu vergeben ... ähm ... naja, Du
    verstehst schon! :rolleyes:
     
  8. NWO

    NWO MacUser Mitglied

    Beiträge:
    1
    Zustimmungen:
    0
    Registriert seit:
    19.12.2010
    Warum immer so kompliziert? Normal willl man doch nur einen Benutzer anlegen mit gleichnamiger Datenbank und alle Rechte darauf gewähren... Und nun such ich schon 20 Minuten nach dem richtigen Befehl...

    Also, nach dem man sich mit dem "mysql -pDEINPASSWORTFÜRROOT" eingeloggt hat:

    CREATE USER 'MEINNEUERNUTZER'@'localhost' IDENTIFIED BY 'MEINPASSWORD';
    GRANT USAGE ON * . * TO 'MEINNEUERNUTZER'@'localhost' IDENTIFIED BY 'MEINPASSWORD' 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 `MEINNEUERNUTZER` ;
    GRANT ALL PRIVILEGES ON `MEINNEUERNUTZER` . * TO 'MEINNEUERNUTZER'@'localhost';


    Der vorletzte "MEINNEUERNUTZER" sowie der drittletzte stehen für den Datenbanknamen.
    Es sind insgesammt nur 4 Zeilen !!! Die Zweite wir hier im Forum leider mit einem Umbruch dargestellt !!!
     
    Zuletzt bearbeitet: 19.12.2010
Die Seite wird geladen...
Ähnliche Themen - MySQL user anlegen Forum Datum
Leidiges Thema Sonderzeichen mit php und mysql Web-Programmierung 22.02.2013
Dynamisch erstellte Navugation mit MySQL Anbindung Web-Programmierung 10.11.2012
MySQL SELECT über mehrere Tabellen Web-Programmierung 19.09.2012
MySQL MaxOpenFiles unter Lion Web-Programmierung 18.02.2012
[PHP] Massen-Email verschicken: Was kann man falsch machen? Web-Programmierung 01.11.2011

Diese Seite empfehlen

Benutzerdefinierte Suche