Datenbank anlegen Schritt für Schritt
Dieses Dokument beschreibt Schritt für Schritt das Anlegen einer MySQL-Datenbank mit einem dazugehörigen MySQL-Benutzer. Die Anleitung gilt sinngemäß auch für PostgreSQL, wobei dann natürlich bei der Benutzung von dbadmin jeweils der PostgreSQL-Server als Instanz angegeben und [TBD: wie heißt das Tool?] ein entsprechend anderes Werkzeug zur Interaktion mit der Datenbank verwendet werden muss.
Außerdem wird angenommen, dass das MySQL-Benutzerkonto für den Paket-Datenbankadmin bereits angelegt wurde. Falls dies noch nicht geschehen ist: das Anlegen dieses Benutzers ist in der dbamin-Dokumentation unter "Anlegen eines neuen Datenbankbenutzers" beschrieben.
Anlegen des Benutzers
Da es nicht empfehlenswert ist, den Paket-Datenbankadmin für andere Zwecke als zur Verwaltung der Datenbanken zu verwenden, sollte als erster Schritt ein neues Datenbank-Benutzerkonto angelegt werden. Diesem werden später die Rechte an der erstellten Datenbank gegeben. Zum Anlegen des Benutzers wird das Kommandozeilen-Werkzeug dbamin verwendet:
xyz00@host:~$ dbadmin -a -i mysql -u xyz00_beispiel
Password:
User 'xyz00_beispiel' created.
Nach Eingabe des Befehls fragt dbadmin das Passwort ab, dass dem neu angelegten Benutzer zugewiesen werden soll. Das Passwort wird bei der Eingabe nicht angezeigt.
Der so angelegte Benutzer kann sich von jedem Rechner im Internet aus mit MySQL verbinden. Ist das nicht gewünscht, so kann man stattdessen einen Benutzer einrichten, der nur für eine Anmeldung von bestimmten Rechnern aus gültig ist, indem man diese im Benutzernamen mit angibt:
xyz00@host:~$ dbadmin -a -i mysql -u xyz00_beispiel@localhost
Dieser Benutzer könnte sich beispielsweise nur von dem Rechner aus mit MySQL verbinden, auf dem die Datenbank läuft. Achtung, in diesem Fall kann in der Regel die phpMyAdmin-Installation von Hostsharing nicht genutzt werden, da diese sich nicht auf dem gleichen Host wie die Pakete befindet.
Anlegen der Datenbank
Als nächstes wird die Datenbank selbst angelegt. Hierfür wird ebenfalls dbadmin verwendet:
xyz00@host:~$ dbadmin -c -i mysql -n xyz00_beispiel
Database 'xyz00_beispiel' created.
Rechte an der Datenbank vergeben
Jetzt müssen dem im ersten Schritt angelegten Benutzer Zugriffsrechte auf die neue Datenbank gegeben werden. Dafür werden die normalen SQL-Befehle verwendet. Der Paket-Datenbankadmin muss sich mit Hilfe des Kommandozeilen-Werkzeugs mysql mit der Datenbank verbinden und dann die Rechte wie gewünscht vergeben:
xyz00@host:~$ mysql -u xyz00 -p
Enter password:
Welcome to the MySQL ...
mysql> GRANT ALL ON xyz00_beispiel.* TO xyz00_beispiel;
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye
Mit dem obigen GRANT-Befehl werden dem Benutzer alle Rechte an der Datenbank gegeben. In der Regel wird dies nicht notwendig sein; es ist sicherer, dem Benutzer nur die tatsächlich benötigten Rechte einzuräumen. Eine Auflistung der verschiedenen Rechte befindet sich in der MySQL-Dokumentation zum GRANT-Befehl.
Datenbank testen
Jetzt sollte der Benutzer die Datenbank nutzen können:
xyz00@host:~$ mysql -D xyz00_beispiel -u xyz00_beispiel -p
Enter password:
Welcome to the MySQL ...
Ausprobieren, kann man dies Beispielsweise durch das Anlegen und Löschen einer Tabelle:
mysql> create table test;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+--------------------------+
| Tables_in_xyz00_beispiel |
+--------------------------+
| test |
+--------------------------+
1 row in set
mysql> drop table test;
Query ok, 0 rows affected (0.00 sec)
mysql> exit
Bye
Das Anlegen und Löschen einer Tabelle funktioniert dabei natürlich nur, wenn dem Benutzer auch tatsächlich die dafür nötigen Rechte eingeräumt wurden. In der Regel wird ein Benutzerkonto, das für die Verwendung in einer Web-Anwendung eingerichtet wurde, diese Rechte nicht benötigen. Es ist dann sicherer, diese Rechte auch nicht zu vergeben.

