Jak v Linuxu vytvořit novou MySQL databázi, nový MySQL účet a přidělit uživatelská práva
Napsal weckho (Čer 13, 2008)
Pro práci na webových projektech je ve většině
případů používán databázový systém MySQL. V následujícím
tutoriálu si vysvětlíme, jak v Linuxu vytvořit novou databázi a
přidělit přístupová práva uživatelům. Vše je potřeba dělat za
předpokladu, že je v pořádku v systému nainstalováno MySQL.
Vytvoříme novou databázi s názvem ‚Nova_DB‘ a přidělíme všechna práva k této databázi uživateli ‚uzivatel‘. Uživatel bude k databázi přistupovat pod heslem ‚heslo‘.
Při defaultním nastavení se může root přihlásit k mysql bez použití hesla:
$ mysql -u root
Pokud je heslo vyžadováno, je potřeba do příkazu doplnit parametr -p:
$ mysql -u root -p Enter password:
Po zadání správného hesla bychom měli být přihlášeni k databázovému systému, to se v terminálu projeví zobrazením ‚mysql>‘. Nyní můžeme posílat dotazy na MySQL.
První věc, kterou uděláme, bude vytvoření nové databáze:
mysql> create database Nova_DB; Query OK, 1 row affected (0.00 sec)
Je na místě poznamenat, že MySQL (a Linux obecně) jsou Case Sensitive (záleží na velikosti písmen). Na to je potřeba myslet později při přístupu k této nové databázi. Dotaz na databázi ‚nova_db‘ skončí chybou, protože jsme vytvořili databázi ‚Nova_DB‘.
Nyní povolíme uživateli ‚uzivatel‘ připojení k serveru z localhostu pod heslem ‚heslo‘:
mysql> grant usage on . to uzivatel@localhost identified by ‚heslo‘; Query OK, 0 rows affected (0.00 sec)
Pokud bychom chtěli uživateli povolit přístup odkudkoliv, to znamená třeba někde ze sítě, příkaz by vypadal následovně:
mysql> grant usage on . to uzivatel@% identified by ‚heslo‘; Query OK, 0 rows affected (0.00 sec)
Oba uvedené příkazy vytvoří účty se superuživatelskými právy. To znamená, že uživatele mají oprávnění vytvářet/mazat databáze, vytvářet tabulky, pracovat s nimi a podobně. Nemohou však vytvářet nové účty (uživatele), přidělovat k databázím práva a podobně. Podle oficiálního MySQL manuálu by to jít mělo, mě se to však nepotvrdilo.
Pokud chceme uživateli přidělit práva k práci s dříve vytvořenou databází ‚Nova_DB‘, provedeme to následovně:
mysql> grant all privileges on Nova_DB.* to uzivatel@localhost; Query OK, 0 rows affected (0.00 sec)
V případě, že budeme s novým uživatelem ‚uzivatel‘ vytvářet nové databáze, měl by tento uživatel mít práva k těmto databázím automaticky.
Všechny příkazy testovány na Linux Ubuntu Hardy Heron, vzhledem k multiplatformní MySQL však budou fungovat v jakékoliv distribuci.
