MySQL (61) - Oprávnění
Máte právo nevypovídat, aneb jak fungují v MySQL oprávnění.
3.3.2006 06:00 |
Petr Zajíc
| Články autora
| přečteno 21858×
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.
Princip
Zá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áv
V 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:
- Přiřadit mu práva pro celý server
- Přiřadit mu práva pro jednu nebo více databází (z mnoha
existujících)
- Přiřadit mu práva pro jednu nebo více tabulek v databázi (z mnoha
existujících)
- Přiřadit mu práva pro jeden sloupec v tabulce
- Přiřadit mu práva vytvářet a používat pohledy (jen MySQL 5.x)
- Přiřadit mu práva vytvářet, měnit nebo spouštět uložené procedury
(jen MySQL 5.x)
O jaká práva se konkrétně jedná? Pokud jde o data, lze povolit nebo
zakázat, že uživatel může:
- Prohlížet (používat SELECT)
- Vkládat (používat INSERT)
- Upravovat (používat UPDATE)
- Odstraňovat (používat DELETE)
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.
Filozofie
Protož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.
Praxe
Běž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.
Verze pro tisk
|
Nejsou žádné diskuzní příspěvky u dané položky.
Příspívat do diskuze mohou pouze registrovaní uživatelé.
|
|

Vyhledávání software

Vyhledávání článků
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
Více ...
Přidat zprávičku
 Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|