Charakteristickým rysem MySQL je jeho vlastní bezpečnost, spoléhající na externí ochranu. Jako moderní, plně vybavený a efektivní systém správy databází má MySQL své vlastní nástroje pro správu uživatelů a jejich přístupu ke zdrojům, které ovládá.
Pokud neznáte správné uživatelské jméno a heslo, je přístup k databázi přes MySQL velmi obtížný.
V normálním režimu hostování to stačí. Nepředvídatelné situace, útoky hackerů a další potíže jsou záležitostí externí správy systému a bezpečnostních služeb. Tento koncept se stal tradičním a prakticky se o něm nediskutuje.
Nainstalovat server MySQL a uživatel root
V jakémkoli operačním prostředí je systém správy databází nainstalován, vždy má alespoň jednoho uživatele: root. Nainstalujte MySQL, vytvořte uživatele se všemi právy root - bez toho pracujteserver není možný. Oprávnění tohoto uživatele jsou dostatečná pro:
- vytvářejte a spravujte nové uživatele;
- vytvářejte a spravujte databáze.
V zásadě je možné, aby v MySQL existovali uživatelé „bez hesla“, ale to je nepřijatelné.
Běžná praxe:
- server nainstalovaný na vlastním počítači, kam lze nainstalovat hosting (místní varianta);
- server je na veřejném hostingu na internetu.
V prvním případě je možné pracovat se serverem z příkazové řádky a používat phpMyAdmin, v druhém případě pouze phpMyAdmin nebo podobný nástroj, ale k příkazové řádce lze přistupovat přes vzdálený SSH přístup.
Vlastní nástroje pro správu
Pocit spřízněnosti s rodinou Unixoidů as minulostí ze serverů Apache je charakteristickým znakem MySQL: create user je příkazový řádek s podivnou syntaxí. Pro profesionály pracující s Linuxem a podobnými systémy je to tak známé, jako to vypadá divoce v očích uživatelů Windows, kteří nikdy „nevstoupili do skutečného života“.
Vytvoření uživatele začíná spuštěním příkazového řádku serveru. V prostředí Windows se to dělá následovně.
Nejprve (1) musíte spustit příkazový řádek jako správce, poté přejděte do složky, kde se nachází MySQL (2), potéspusťte samotný server (3):
mysql -u… -p
zde „-u…“a „-p“jsou klíče, které ukazují na jméno „…“=root (nebo jiné jméno) a jeho heslo. V zásadě uživatel nemusí být root, ale ten, kdo má práva „root“(administrátor).
Důležité: server je ve skutečnosti vždy spuštěn, zde mysql -u… -p je příkaz pro přístup k serveru, nikoli pro jeho spuštění.
V prostředí Linuxu a podobných systémech je takový příkaz „nativní“akcí a zpravidla se určuje jednoduchým spuštěním mysqld na správném místě (na správné cestě), toto je třeba zkontrolovat pomocí správce. Obvykle je zde jiný název: ne mysql, ale mysqld. Také zde není tato akce vždy dostupná všem uživatelům (operačního systému, nikoli serveru MySQL). Na rozdíl od Windows jsou v Linuxoidech pořádek a bezpečnost přirozeným a nesmlouvavým požadavkem, se kterým se vždy zachází civilizovaně.
V každém případě, jakmile se mysql spustí, oznámí to výzvou (4):
mysql>
a bude možné pracovat jak s uživateli, tak s databázemi.
Poznámka. Při instalaci v prostředí Windows lze vše: Apache, MySQL, PHP, phpMyAdmin nastavit na výchozí cesty, ale doporučuje se použít kompaktnější a bližší umístění pro tyto důležité nástroje:
- c:\SCiA\Apache;
- c:\SCiA\PHP;
- c:\SCiA\MySQL;
- …
- c:\SCiB\localhost\www\phpMyAdmin;
- c:\SCiB\site1\www;
- c:\SCiB\site2\www;
- …
- c:\SCiB\siteN\www\.
Tato logika nejen zjednoduší administraci, ale také rozšíří schopnost vývojářů přecházet mezi verzemi produktů a spravovat jejich funkčnost.
Práce na příkazovém řádku MySQL
Jakmile server odpoví a poskytne svůj příkazový řádek, lze vytvořit uživatele a přidělit jim oprávnění.
V tomto příkladu vytvořil příkaz create user uživatele Petrov s heslem 123DFG. Pokud při zadávání příkazu dojde k chybě, server nabídne její opravu, ale při práci na příkazovém řádku je lepší nikdy nedělat chyby!
Následující příkaz udělit všechna oprávnění dává všechna práva ke všemu. Příkaz flush lze vynechat, ale „vypíná“vyrovnávací paměť příkazů, to znamená, že opravuje jejich provádění.
MySQL: vytvořte uživatele a udělte práva k databázi
Příkaz použitý v příkladu:
UDĚLEJTE VŠECHNA PRIVILEGIUM NA. 'Petrov'@'localhost';
ve skutečnosti uděluje uživateli Petrov přístup ke všem databázím (první hvězdička) ke všem tabulkám (druhá hvězdička).
Jako obecné pravidlo MySQL je vytvoření uživatele:
GRANT [typ privilegia] ON [název databáze].[název tabulky] TO '[uživatel]'@'localhost';
Povoleny jsou následující oprávnění:
- VŠECHNY PRIVILEGIE – všechna práva.
- CREATE – právo vytvářet nové tabulky/databáze.
- DROP – právo rušit tabulky/databáze.
- DELETE - právo smazat informace v tabulkách.
- INSERT - právo zapisovat informace do tabulek.
- SELECT – právo číst informace z tabulek.
- UPDATE – právo aktualizovat informace v tabulkách.
- MOŽNOST GRANTU – právo pracovat s právy ostatních uživatelů.
Z praktického hlediska „vytvořit uživatele“v MySQL znamená tři možnosti práv:
- všechna práva ke všem databázím a všem uživatelům;
- číst a psát;
- pouze pro čtení.
Jiné možnosti pro udělení práv jsou vyžadovány zřídka. V prostředí Linuxu existuje mnohem více důvodů pro „právní“svobodu (a nutnost), ale existuje zde mnohem více příležitostí než ve Windows.
Reverzní operace MySQL „vytvořit uživatele“je zrušena.
uvolněte uživatele 'Petrov'@'localhost';
Po provedení tohoto příkazu již Petrov nebude uživatelem a jeho oprávnění budou ztracena. Pro změnu oprávnění použijte příkaz:
ODVOLAT [privilegium] NA [DB].[Tabulka] PRO '[uživatel]'@'localhost';
Obvyklou akcí v MySQL je vytvoření uživatele nebo jeho smazání, ale změna oprávnění je také platná operace (vyžadována jen zřídka).
Pomocí phpMyAdmin
Existuje mnoho implementací tohoto skvělého nástroje. V závislosti na použité verzi Apache, PHP a MySQL často trvá dlouho najít správnou verzi tohoto produktu, ale jakmile je phpMyAdmin úspěšně nainstalován, má uživatel mnoho pohodlných funkcí a pohodlnýrozhraní.
Pomocí phpMyAdmin můžete říci MySQL, aby vytvořila uživatele pro libovolného hostitele a spravovala stávající uživatele téměř chirurgickým způsobem.
phpMyAdmin není jediný nástroj s pohodlným, intuitivním rozhraním bohatým na funkce, ale je to nejoblíbenější nástroj pro správu serverů MySQL.
O příkazovém řádku a zabezpečení
Používání příkazového řádku MySQL je samozřejmě neatraktivní cvičení, ale je třeba mít na paměti, že v některých případech může pouze příkazový řádek serveru zachránit databázi nebo uživatele, zajistit import nebo export informací.
Verze softwaru se vyvíjejí tak rychle, že vývojáři prostě nemají čas kombinovat funkce například PHP a MySQL, MySQL a phpMyAdmin. Pokud se něco stane, příkazový řádek vždy zachrání den.
Nikdy bychom také neměli zapomínat: Administrace MySQL je pouze o přístupu k jeho databázím a prostřednictvím jeho funkčnosti. Databázové soubory jsou otevřené pro přístup mimo MySQL. Externí zabezpečení MySQL a zdrojů, které kontroluje, je skutečnou a důležitou potřebou.