Utility mysqladmin
Einrichten des Super-Users
Wenn der Datenbankserver neu aufgesetzt wurde, soll das Passwort für den Administrator festgelegt werden:
$ mysqladmin -u username password password
Der Username für den Administrator heißt, wie in der UNIX-Welt üblich root, das Passwort password ist entsprechend sicher zu wählen.
$ mysqladmin -u root password password
Sobald ein Passwort für den User angegeben wurde, muß dem Aufruf von mysqladmin die Option -p (das Passwort wird dann interaktiv abgefragt) bzw. --password=password mitgegeben werden.
Unter Linux kann dann das Administrator-Paßwort mit:
$mysqladmin -u root -p password password
geändert werden. Dies ist unter Windows mit mysqladmin offenbar nicht möglich. Sehr wohl aber mit dem »DB Tools Manager, dafür ohne Abfrage des alten Passwortes, was als sehr bedenklich anzusehen ist!
Datenbanken anlegen/löschen
Der Administrator (bzw. andere berechtigte User können Datenbanken anlegen und löschen:
$ mysqladmin -p create dbname $ mysqladmin -p drop dbname
Direkte Verbindung mit mysql
Mit dem kommandozeilenorientierten Utility «mysql» können spezielle MySQL-Server-Befehle oder SQL-Befehle abgesetzt werden.
Zugriffsrechte auf den Datenbankserver und seine Datenbanken werden in der speziellen Datenbank mysql abgelegt. Die dort angelegten Tabellen steuern den Zugriff auf den MySQL-Server (user), von ganzen Computern (host), auf einzelne Datenbanken (db), Tabellen (tables_priv) oder Spalten (columns_priv). Nach Änderungen in der Datenbank «mysql» muß der Datenbankserver neu geladen (mysqladmin -p -u root reload) werden, damit die Änderungen aktiviert werden.
Tabellenname | Funktion |
---|---|
Tabelle 1 | |
user | Zugriff von Usern auf den Datenbankserver |
db | Zugriff von Usern auf Datenbanken |
host | Zugriff von Rechnern auf Datenbanken |
Der genaue Aufbau und die Beschreibung der (Administrtaions-) Tabellen ist der Dokumentation zu entnehmen.
Userzugriff auf den Datenbankserver
User sollen von bestimmten Hosts Zugriff auf den Datenbankserver erhalten. Zusätzlich werden noch weitere Attribute für die Art des Zugriffs und zur Manipulation des Datenbankservers eingerichtet.
$ mysql -p -u root mysql mysql> insert into user (host,user,password) values ('%', 'chris', password ('****'));
oder
$ mysql -p -u root mysql> use mysql; mysql> insert into user (host,user,password) values ('%', 'chris', password ('****'));
Zum Überprüfen der Einträge dient folgende SQL-Anweisung auf die Tabelle user der Datenbank mysql.
$ mysql -p -u root mysql> use mysql; mysql> select * from user;
Die Bestimmung der Zugriffsrechen in der Tabelle «user» wird in folgender Reihenfolge bestimmt:
- Hosts: Hostangaben ohne Wildcards werden vor Hostangaben mit Wildcards überprüft. Leere Hostfelder werden wie Wildcards behandelt.
- User: Userangaben ohne Wildcard werden vor Userangaben mit Wildcards überprüft.
Userzugriff auf Datenbanken
User sollen von bestimmten Hosts Zugriff auf unterschiedliche Datenbanken erhalten.Zusätzlich werden noch weitere Attribute für die Art des Zugriffs auf die Datenbanken eingerichtet.
- Hosts: Hostangaben ohne Wildcards werden vor Hostangaben mit Wildcards überprüft. Bei leeren Hostfeldern wird die Tabelle «host» überprüft.
- User: Userangaben ohne Wildcard werden vor Userangaben mit Wildcards überprüft.
Werden dem User in der Tabelle «user» Rechte erteilt, dann gelten diese auch dann, wenn sie ihm in der Tabelle «db» nicht erlaubt sind!
Zugriffe von Hosts
Steht in der «Host»-Spalte der Tabelle «User» ein Leerfeld, dann werden die Zugriffsrechte des Users von der Tabelle «host» bestimmt.
$ mysql -p -u root mysql> use mysql; mysql> insert into host (host,db,user) values ('localhost', 'rana', 'chris');
Weitere Kommandi (exklusive SQL)
Kommando | Erklärung |
---|---|
Tabelle 2 | |
mysql> show databases; | Anzeige der Datenbanken auf dem Server |
mysql> use database | Einsteigen in die Datenbank |
mysql> show tables; | Anzeige der Tabellen in der Datenbank |