ARCHIV |
|||||
Software (10844)
Distribuce (131)
Skripty (697)
Menu
Diskuze
Informace
|
MySQL (61) - OprávněníMáte právo nevypovídat, aneb jak fungují v MySQL oprávnění. Právě se v seriálu dostáváme k poměrně rozsáhlé oblasti správy
databáze, a tou je oprávnění jednotlivých uživatelů. MySQL obsahuje
poměrně silný koncept oprávnění, a proto jej v několika dalších dílech
podrobně prozkoumáme. Kvalitně nastavená oprávnění mohou samozřejmě
zvýšit bezpečnost serveru a naopak - při špatně nastavených oprávněních
můžete přijít o data nebo se - což je mnohdy ještě horší - údaje z
databáze mohou dostat do nepovolaných rukou. PrincipZákladní princip oprávnění, který MySQL používá je v zásadě totožný
s většinou jiných databázových systémů. Funguje tak, že pokud chcete s
databází pracovat, je třeba se nejprve identifikovat pomocí
uživatelského jména. Toto uživatelské jméno je samozřejmě unikátní,
takže se nemůže stát, že by dva uživatelé na jednom databázovém serveru
měli stejné uživatelské jméno. Pozn.: Na druhou stranu je možné,
že se pod jedním uživatelským účtem vytvoří několik připojení k
databázi. Ty mají potom z hlediska oprávnění rovnocenné podmínky. Dalším bezpečnostním prvkem je heslo. Tady už teoreticky je možné,
aby dva různí uživatelé měli heslo stejné; i když v praxi to nastane
zřídkakdy. Je rovněž teoreticky možné heslo nepoužívat, ale to
podstatně snižuje bezpečnost systému. Na základě kombinace
uživatelského jména a hesla je rozumným způsobem zajištěno, že se
přihlašuje opravdu ten, kdo heslo obdržel. I když s jistotou se to
tvrdit nedá, heslo moho být zcizeno. Následně se přihlášený uživatel pokusí vykonat na databázi nějaký
příkaz - vybrat data, manipulovat s daty nebo spravovat databázi. Před
každým takovým příkazem jsou zkontrolována oprávnění a buď je akce
povolena, nebo je zakázána. Uvedený přístup funguje obdobně u naprosté většiny databází. MySQL
má ještě rozšíření v tom smyslu, že jako součást přihlašovacích
informací může DBMS brát v úvahu počítač, z něhož se k databázi
připojujete. Tak tedy například uživatel "franta" může se svým
heslem přistupovat k serveru z adresy 192.168.0.1, ale tentýž uživatel
nemůže přistupovat ze stroje 192.168.0.2. Tím se možnosti zabezpečení
dosti rozšiřují - lze například zakázat nebo povolit přístup k databázi
z místní sítě nebo z internetu. Na druhou stranu je dobré zmínit se o tom, že MySQL nepoužívá
integrovaný systém přihlašování známý uživatelům Windows. Integrovaný
(trusted) systém zjednodušeně funguje tak, že "když tě ověří systém,
smíš i do databáze". MySQL pochopitelně nic takového nepodporuje,
protože je multiplatformní a uvedený princip by fungoval pouze na
Windows NT (2000, XP). Rozlišení právV moderních databázových systémech samozřejmě nejde jen o to
uživateli něco povolit nebo zakázat, ale jde i o to, jak jemné může
takové nastavení být. Proto se dají oprávnění vymezit nejen pro celý
server, ale i pro jednotlivé drobnější celky. MySQL nezůstává v tomto
trendu pozadu, takže pro uživatele lze zajistit následující věci:
O jaká práva se konkrétně jedná? Pokud jde o data, lze povolit nebo
zakázat, že uživatel může:
V případě databází existují práva vytvářet či měnit tabulky, měnit
sloupce v tabulkách či vytvářet dočasné tabulky. Existují práva pro
správu, umožňující měnit práva ostatním uživatelům nebo měnit nastavení
systému. Je toho hodně, ale je v tom systém. Idea je ta, že
prostřednictvím kombinace práv by mělo být možné povolit nebo zakázat
prakticky cokoli. Databáze MySQL ukládá oprávnění - jak asi tušíte - do zvláštní,
systémové databáze. Ta se jmenuje mysql
a je vytvořena při instalaci serveru. Tato databáze obsahuje několik
tabulek, které ukládají oprávnění uživatelů pro globání přístup, pro
jednotlivé databáze, tabulky a sloupce. Jak uvidíme v příštím díle,
oprávnění jsou z tabulek načítána jako klasická data, což znamená, že
přímou změnou těchto tabulek pomocí akčních dotazů můžeme oprávnění
spravovat. Uvidíme ale také, že existuje sada příkazů SQL, která to
udělá za nás s mnohem větším komfortem. FilozofieProtože ve správě systému by měla vládnout tvrdá totalitní ruka
administrátora, bude se nejspíš při přidělování práv pro databázi
používat následující zásada: Co není povoleno, je zakázáno. Většina
správců si tedy bude přát použít postup "povolit všem co nejméně" a
"povolit více, jen pokud to nezbytně potřebují". Zní to tvrdě, ale
účinně se tak dá udržet v databázi pořádek. V provozu tedy není časté, aby jednotlivý uživatel mohl dělat
všechno. Existují spíše uživatelské účty pro práci s daty, uživatelské
účty pro nastavování serveru a třeba uživatelské účty pro zálohování
dat. Rovněž nebývá časté, že by se více lidí přihlašovalo pod jedním
uživatelským účtem. Naopak, každý má typicky svůj účet a svoje heslo.
PraxeBěžný uživatel při práci s MySQL přiliš nenarazí na oprávnění.
Důvodem je fakt, že v typické situaci bude mít (třeba na hostingu) k
dispozici jednu databázi, a v ní bude moci provozovat jakoukoli
myslitenou akci (obvykle kromě smazání databáze samotné). Uživatelé
jsou tedy omezeni na "svoji" databázi a mohou v ní vytvářet a měnit
tabulky, pracovat s daty a vytvářet pohledy, funkce a procedury.
Zároveň většinou nemají přístup ke konfiguraci systému. Tento přístup je léty ověřený a obvykle postačí pro webhosting. Spokojen bude jak uživatel, tak správce. Zcela jiná situace však nastane, když bude třeba používat více databází, více uživatelů pracujících se stejnými daty nebo připojovat se z různých míst. Pak přijdou na řadu oprávnění - a leckdy bude pěkný hlavolam nastavit je tak, aby odpovídaly skutečným potřebám praxe. Jinými slovy - pokud používáte MySQL pouze na webu a jako uživatelé, pravděpodobně se nemusíte záležitostmi kolem oprávnění příliš vzrušovat. Pokud jste správci nebo pokud potřebujete nastavit konkrétní systém, pak se Vám bude líbit následující díl, který se bude nastavováním oprávnění zabývat prakticky.
Související články
Předchozí Celou kategorii (seriál) Další
MySQL (1) - pestrý svět databází
MySQL (2) - Instalujeme databázi MySQL MYSQL (3) Instalujeme MySQL podruhé MySQL (4) - něco terminologie MySQL (5) - tajuplné SQL MySQL (6) - Ukládáme řetězce MySQL (7) - hrátky s čísly MySQL (8) - Ukládání datumů MySQL (9) - Další datové typy MySQL (10) - tvorba databáze. Základy DDL MySQL (11) - vytváříme tabulky MySQL (12) - tipy k tvorbě tabulek MySQL (13) - Vkládáme data MySQL (14) - Upravujeme data MySQL (15) - Odstraňujeme data MySQL (16) - Tipy a triky k manipulaci s daty MySQL (17) - vybíráme data MySQL (18) - Filtrujeme data MySQL (19) - Řadíme data MySQL (20) - spojení více tabulek MySQL (21) - klauzule JOIN MySQL (22) - tipy a triky ke spojování tabulek MySQL (23) - relace 1:N a N:N MySQL (24) - Seskupujeme záznamy MySQL (25) - hrátky se seskupenými záznamy MySQL (26) - Poddotazy MySQL (27) - Složitější dotazy MySQL (28) - Dotazy pro pokročilé MySQL (29) - Vracení nejvyšších záznamů MySQL (30) - průběžné součty MySQL (31) - Indexy MySQL (32) - ještě k indexům MySQL (33) - Příkaz UNION MySQL (34) - větvení kódu a pivotní tabulky MySQL (35) - vestavěné funkce MySQL (36) - Regulární výrazy MySQL (37) - použití fulltextového vyhledávání MySQL (38) - Fulltext a praxe MySQL (39) - typy tabulek v MySQL MySQL (40) - další typy tabulek MySQL (41) - Transakce MySQL (42) - ještě k transakcím MySQL (43) - Uložené procedury MySQL (44) - parametry uložených procedur MySQL (45) - větvení kódu uložených procedur MySQL (46) - Triggery MySQL (47) - Triggery a praxe MySQL (48) - UDF MySQL (49) - pohledy MySQL (50) - Pohledy podruhé MySQL (51) - Metadata MySQL (52) - A co zálohování? MySQL (53) - SELECT INTO OUTFILE MySQL (54) - zálohování MySQL z webu MySQL (55) - zálohování MySQL z pohledu správce MySQL (56) - Obnova zálohovaných dat MySQL (57) - Ach, ta čeština MySQL (58) - čeština v praxi MySQL (59) - české řazení MySQL (60) - řádkový klient MySQL (62) - Oprávnění podruhé MySQL (63) - jemné nastavení práv MySQL (64) - nad dotazy čtenářů MySQL (65) - Ladíme server MySQL (66) - Ještě k ladění serveru MySQL - (67) MySQL (68) - Závěr MySQL (69) - Prepared Statements Předchozí Celou kategorii (seriál) Další
|
Vyhledávání software
Vyhledávání článků
28.11.2018 23:56 /František Kučera 12.11.2018 21:28 /Redakce Linuxsoft.cz 6.11.2018 2:04 /František Kučera 4.10.2018 21:30 /Ondřej Čečák 18.9.2018 23:30 /František Kučera 9.9.2018 14:15 /Redakce Linuxsoft.cz 12.8.2018 16:58 /František Kučera 16.7.2018 1:05 /František Kučera
Poslední diskuze
31.7.2023 14:13 /
Linda Graham 30.11.2022 9:32 /
Kyle McDermott 13.12.2018 10:57 /
Jan Mareš 2.12.2018 23:56 /
František Kučera 5.10.2018 17:12 /
Jakub Kuljovsky | |||
ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze |