Průkopnická firma FingerWorks kolem roku 2000 vyvinula vícedotykové trackpady s gesty a klávesnice jako TouchStream LP. V roce 2005 ji koupil Apple, výrobu těchto produktů ukončil a dotykové technologie využil při vývoji iPhone. Multiplatformní projekt Apple Magic TouchstreamLP nyní implementuje funkcionalitu TouchStream LP na současném Apple Magic Trackpad, resp. jejich dvojici. Diskuze k vydání probíhá na Redditu.
Byla vydána nová verze 10.3 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu bezpečnostních oprav, vylepšení funkcí a oprav chyb.
Cloudflare představil open source redakční systém EmDash. Jedná se o moderní náhradu WordPressu, která řeší bezpečnost pluginů. Administrátorské rozhraní lze vyzkoušet na EmDash Playground.
Bratislava OpenCamp 2026 zverejnil program a spustil registráciu. Štvrtý ročník komunitnej konferencie o otvorených technológiách prinesie 19 prednášok na rôzne technologické témy. Konferencia sa uskutoční v sobotu 25. apríla 2026 v priestoroch FIIT STU v Bratislave.
Na iVysílání lze zhlédnout všechny díly kultovního sci-fi seriálu Červený trpaslík.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl v březnu 5,33 % (Windows -4,28 %, OSX +1,19 %, Linux +3,10 %). Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 24,48 %. Procesor AMD používá 67,48 % hráčů na Linuxu.
Společnost Apple slaví padesáté narozeniny. Založena byla 1. dubna 1976.
FreeTube, desktopový klient pro YouTube využívající lokální API, byl vydán ve verzi 0.24.0. Toto velké opravné vydání implementuje SABR (Server-Based Adaptive Bit Rate), což řeší část nedávných problémů s načítáním videí z YouTube, a aktualizuje základní komponenty jako Electron nebo přehrávač Shaka Player.
Je tu opět apríl. O víkendu zmizel kamion s 12 tunami tyčinek KitKat. Firmy to využívají k aprílovým žertům. Groupon má super akci. Koupíte 1 tyčinku a dostanete 100 zdarma. Ryanair si přelepil letadla. Šéf Outlooku se ptá, proč mají v baráku 14 beden tyčinek KitKat (𝕏). Prusa Research představuje Prusa Pro ACU a vysvětluje proč přílišné sušení škodí vaším filamentům. Telefon Sony Xperia má miliónnásobný zoom (𝕏). PC.net představil Super Ultrabox 2600 se zajímavými parametry. Další aprílové novinky například na April Fools' Day On The Web.
Společnost OpenAI, která stojí za chatovacím robotem s umělou inteligencí (AI) ChatGPT, získala od investorů 122 miliard USD (2,6 bilionu Kč). Hodnota společnosti tak dosáhla 852 miliard dolarů (více než 18 bilionů Kč). Nejnovější kolo investování se stalo největší, jaké zatím firma uskutečnila, a peníze mají posílit ambiciózní plány rozšíření výpočetní kapacity, datových center a nábor talentů.
Nyní už umíte vytvořit dobře strukturovanou databázi. Vytvořením databáze by ale vaše starost o databázi končit neměla. Databázi musíte především zabezpečit před zlomyslnými hackery. Dále byste neměli podcenit zálohování databáze, možná budete muset také importovat data do databáze nebo naopak exportovat data z databáze. Databázi je také třeba chránit proti fragmentaci. Někdy možná budete muset opravit poškozené tabulky databáze. Jak vidíte, jste zatím jen na půlce cesty ke zvládnutí práce s databázovým systémem MySQL.
V tomto díle se naučíte zabezpečit databázi. Zabezpečení databáze je velmi důležité, protože v databázi se často uchovávají důležité informace a mohlo by proto být dost nepříjemné, kdyby je nějaký hacker prohlížel, nebo rovnou vymazal.
mysqlMožná jste si všimli, že se po instalaci MySQL automaticky vytvořily dvě
databáze - test a mysql. V databázi
mysql jsou uloženy tabulky uživatelských účtů. Je to databáze
jako každá jiná. Na tabulky v databázi mysql můžete odesílat stejné dotazy
jako na jiné tabulky. Tabulky v této databázi obsahují veškerá oprávnění
přidělená jednotlivým uživatelům.
Většina sloupců těchto tabulek může obsahovat pouze hodnoty:
Y(=yes) nebo N(=no). Hodnoty ukládané do sloupců
Host a Column_name jsou case insensitive, zatímco
hodnoty ukládané do sloupců User, Password,
Db a Table_name jsou case sensitive.
Databáze mysql obsahuje následující tabulky:
userdbhostfunccolumns_privtables_privuserTabulka user obsahuje veškerá oprávnění uživatelů.
Oprávnění nastavená v této tabulce jsou globální. Tj. když má uživatel
privilegium odstraňovat záznamy nastavená v tabulce user, může
odstraňovat záznamy v kterémkoliv sloupci kterékoli tabulky v kterékoli
databázi.
| Sloupec | Význam |
Host |
Tento sloupec obsahuje název hostitelského počítače, ze kterého se může k databázi daný uživatel přihlásit. Můžete sem ukládat adresy IP, názvy domén nebo
|
User | Uživatelské jméno daného uživatele. |
Password | Heslo uživatele. |
Select_priv |
Dovoluje uživateli spouštět výběrové dotazy SQL. |
Insert_priv |
Umožňuje uživateli přidávat data do databáze pomocí přidávacích dotazů SQL. |
Update_priv |
Umožňuje uživateli aktualizovat existující data pomocí aktualizačních dotazů SQL. |
Delete_priv |
Dovoluje uživateli data z databáze odstraňovat. |
Create_priv |
Umožňuje uživateli vytvářet nové databáze a tabulky (ale ne indexy -
viz Index_priv). |
Drop_priv |
Umožňuje uživateli odstraňovat databáze a tabulky. Toto může být velmi riskantní. |
Reload_priv |
Umožňuje uživateli aktualizovat tabulky uživatelských účtů pomocí příkazu FLUSH PRIVILEGES. |
Shutdown_priv |
Umožňuje uživateli vypnout databázový server MySQL |
Process_priv |
Umožňuje uživateli sledovat zpracování požadavků na serveru MySQL
příkazem mysqladmin processlist nebo SHOW
PROCESSLIST. Umožňuje i odstraňování procesů. |
File_priv |
Umožňuje číst soubory na serveru MySQL nebo do nich zapisovat. Pokud
bude služba MySQL spuštěna systémovým uživatelem root (tj. uživatelem
root daného serveru), může uživatel s právy
File_priv smazat i třeba systémové soubory na serverovém
počítači. |
Grant_priv |
Uživatelé s tímto privilegiem mohou udělovat privilegia jiným uživatelům. |
References_priv | V současné době se nepoužívá. |
Index_priv |
Umožňuje uživateli vytvářet/odstraňovat indexy. |
Alter_priv |
Dovoluje uživateli měnit strukturu tabulky. (ale ne pracovat s indexy) |
dbTabulka db obsahuje informace o udělených privilegiích
pro jednotlivé databáze. Privilegia udělená v této tabulce jsou
platná pouze pro určenou databázi. Nemá-li tedy uživatel privilegium
Drop_priv v tabulce user, ale má ho v tabulce
db, může odstraňovat pouze příslušnou databázi a její
tabulky.
Tabulka db obsahuje téměř stejné sloupce jako tabulka
user. Neobsahuje ale žádná privilegia pro správu (obsahuje jen
privilegia udělitelná v rámci práce s databází). Navíc obsahuje sloupec
Db, který obsahuje název databáze, pro kterou budou nastavení
platná.
hostV tabulce host můžete omezit privilegia hostitelů v rámci
databáze uvedené v sloupci db. Můžete zde tedy nastavit, že
pokud se někdo přihlásí k MySQL z počítače, na kterém běží databáze
(localhost), bude mít privilegium Drop_priv v rámci dané
databáze a pokud odněkud jinud, nebude dané privilegium mít.
Tabulka host obsahuje stejné sloupce jako tabulka
db, ale neobsahuje sloupec user.
columns_priv a tables_privTabulky columns_priv a tables_priv řídí
přístup k tabulkám a jednotlivým sloupcům tabulek. Je to úplně nejspodnější
stupeň udělování privilegií. Pokud uživateli přidělíte privilegium
SELECT v tabulce columns_priv, bude smět pouze
spouštět výběrové dotazy pouze na daný sloupec.
V následující tabulce jsou společné sloupce pro tabulky
columns_priv a tables_priv.
| Sloupec | Význam |
Host |
Název hostitele, ze kterého se uživatel k systému připojuje. |
Db |
Databáze, která obsahuje tabulky, na něž se příslušná privilegia vztahují. |
User |
Uživatelské jméno osoby, které privilegia udělujete. |
Table_name |
Název tabulky, pro kterou udělujete privilegia. Rozlišují se velká a malá písmena. |
Timestamp | Datum poslední změny. |
Column_priv |
Nastavení privilegií pro vybranou tabulku. Je to typ množiny
(SET). Může obsahovat pouze hodnoty: SELECT, INSERT,
UPDATE a REFERENCES. Hodnoty musí být odděleny čárkami. |
Tabulka tables_priv obsahuje navíc sloupce:
Grantor - uchovává jméno osoby, která právo udělila.Table_priv - jsou tu uložena privilegia pro danou tabulku.
Sloupec může obsahovat následující hodnoty: (SELECT, INSERT, UPDATE,
DELETE, CREATE, DROP, GRANT, REFERENCES, INDEX, ALTER).Tabulka columns_priv obsahuje navíc sloupec:
Column_name - obsahuje název sloupce, na který se vztahují
privilegia udělená v poli Column_priv.user atd. Například
pokud uživatel bude potřebovat prohlížet všechny tabulky i sloupce nějaké
databáze, ale aktualizovat jenom jeden sloupec, nastavte mu v tabulce db
privilegium Select_priv příslušné databáze a v tabulce
columns_priv privilegium UPDATE ve sloupci
Column_priv příslušného sloupce.user v databázi mysql. Takový
uživatel může snadno zjistit hesla ostatních uživatelů.root (a nejlépe ani žádné jiné
uživatele) bez hesla.%.mysqld jako systémový uživatel
počítače, na kterém bude mysqld spuštěno. Pak by totiž všichni
uživatelé s privilegiem FILE mohli mazat všechny (tedy i
systémové) soubory počítače, na kterém je mysqld spuštěno.MD5()).data by měly být vlastněny uživatelem,
který spouští službu mysqld. Tento uživatel by měl mít výhradní právo zde
uložené soubory číst nebo upravovat.Když se uživatel přihlásí k databázi MySQL, systém ověří, zda má
uživatel záznam v tabulce user. Dále ověří název hostitele,
uživatelské jméno a heslo. Když přihlášený uživatel odešle do databáze
dotaz, zjistí MySQL, jaké má uživatel privilegia v tabulce
user. Pokud tam uživatel nemá potřebná privilegia, prohledá
tabulku db. Tam nejprve ověří, zda se shoduje název hostitele,
uživatelské jméno a databáze. Pokud ano, ověří zde nastavená oprávnění.
Pokud je nenajde, začne prohledávat tabulku tables_priv a dále
columns_priv. Pokud ani tam oprávnění nenajde, generuje
chybu.
Celý proces je velmi rychlý, takže se nemusíte obávat, že když nastavíte
uživateli práva až v tabulce columns_priv, tak se bude dotaz
provádět postřehnutelně delší dobu.
Toto je dvoustupňové zabezpečení. Musí dojít k autentifikaci uživatele a dále musí mít daný uživatel potřebná privilegia.
Tabulky uživatelských účtů jsou běžné tabulky, takže pokud máte potřebná privilegia, můžete tabulky ručně upravovat. Takto můžete nastavit opravdu cokoli. Nevýhoda je, že přímá úprava uživatelských účtů je pomalá a uživatelsky nepřívětivá. Při přidávání nových záznamů se podívejte, jaké sloupce jsou povinné.
Příklad přidání nového uživatele Martin s heslem
termistor:
INSERT INTO user (Host, User, password)
VALUES("localhost", "Martin", PASSWORD("termistor"));
Toto vytvoří uživatele Martin s heslem
termistor, který se do databáze může připojit pouze z
počítače, na němž je spuštěna databáze MySQL.
GRANT
Příkaz GRANT slouží k snadnému vytváření
uživatelů a následnému přidávání privilegií.
Syntaxe příkazu GRANT je následující:
GRANT {privilegia} [(seznam sloupců)] [, {privilegia} [(seznam sloupců)]...]
ON názevdatabáze.názevtabulky
TO uživatelskéjméno@názevhostitele
IDENTIFIED BY "heslo"
[WITH GRANT OPTIONS]
kde za slovo privilegia doplníte privilegium, které chcete udělit.
| Privilegium | Význam |
ALL |
Uděluje uživateli všechna dostupná privilegia. |
ALTER |
Umožňuje aktualizovat a upravovat tabulky, sloupce a indexy. |
CREATE |
Umožňuje vytvářet tabulky nebo databáze. |
DELETE |
Umožňuje odstraňovat záznamy z tabulek. |
DROP |
Umožňuje odstraňovat tabulky nebo databáze. |
FILE |
Umožňuje manipulovat se soubory serverového počítače. |
INDEX |
Umožňuje přidávat nebo odstraňovat indexy. |
INSERT |
Umožňuje přidávat do databáze nové záznamy. |
PROCESS |
Umožňuje sledovat a odstraňovat procesy systému MySQL. |
REFERENCES | Nepoužívá se. |
RELOAD |
Umožňuje používat příkaz FLUSH. |
SELECT |
Umožňuje spouštět výběrové dotazy. |
SHUTDOWN |
Umožňuje vypnout službu MySQL. |
UPDATE |
Umožňuje upravovat existující záznamy v databázi. |
USAGE |
Umožňuje připojit se k serveru. |
seznam sloupců můžete nepovinně doplnit, na které
sloupce tabulky se budou vybraná privilegia vztahovat.názevdatabáze.názevtabulky můžete doplnit
názevdatabáze.názevtabulky nebo můžete použít zástupný znak
* (*.* znamená, že privilegia aplikujete globálně
na všechny databáze, Názevdatabáze.*, že je aplikujete na
jednu celou databázi).uživatelskéjméno@názevhostitele, přičemž v
části názehostitele můžete použít zástupný znak %
(má stejnou funkci jako * výše).GRANTPříklad vytvoření uživatele Martin s heslem termistor, který se může k databázi připojit jen z počítače, na kterém je databáze spuštěna, a který má veškerá privilegia na všechny tabulky všech databází:
GRANT ALL PRIVILEGES
ON *.* TO Martin@localhost
IDENTIFIED BY "termistor";
mysql_setpermission
Další možnost udělování privilegií je program
mysql_setpermission. Spustíte ho z příkazového řádku. Je to
jednoduchý program, který umožňuje jen základní nastavení. Práce s ním je
ale velmi rychlá a intuitivní.
Uživatele můžete odstranit jen pomocí dotazu SQL na tabulky uživatelských účtů. Uživatele odstraníte takto:
DELETE FROM user WHERE User = "Uživatel_kterého_chcete_odstranit"
AND Host="%";
DELETE FROM db WHERE User =
"Uživatel_kterého_chcete_odstranit" AND Host="%";
atd. (musíte samozřejmě odstranit všechny záznamy příslušející uživateli ve všech tabulkách).
REVOKE)
Privilegia můžete odstranit také pomocí dotazů SQL. Lepší je ale použít
příkaz REVOKE, jehož syntaxe je:
REVOKE {privilegia} [(seznam sloupců)] [, {privilegia} [(seznam sloupců)]...]
ON názevdatabáze.názevtabulky
FROM uživatelskéjméno@názevhostitele;
Za privilegia můžete doplnit stejná privilegia jako v
případě příkazu GRANT.
Všechna privilegia uživatele Uživatel odstraníte takto:
REVOKE ALL ON *.* FROM UŽIVATEL@%;
Takto ale odvoláte jen privilegia, která přísluší uživateli v případě, že se přihlašoval do systému ze vzdáleného počítače. Pokud se mohl přihlašovat i z místního počítače, musíte zadat ještě:
REVOKE ALL ON *.* Uživatel@localhost;
Tabulky uživatelských účtů jsou uloženy v databázi mysql.
Privilegia můžete uživatelům udělovat globálně (tabulka user),
na určitou databázi (tabulka db), v rámci určitého hostitele
(tabulka host), na určité tabulky určité databáze (tabulka
tables_priv), nebo na určité sloupce určité tabulky určité
databáze (tabulka columns_priv).
Uživatele stejně jako jejich privilegia můžete vytvářet a odstraňovat
přímými úpravami tabulek uživatelských účtů. Privilegia můžete udělovat i
příkazem GRANT a odstraňovat příkazem REVOKE.
I když databázi správně zabezpečíte, data v bezpečí stále ještě nebudou. Aby byly, je nutné databázi zálohovat. Jak na to se dozvíte v příštím dílu - zabývá se importem/exportem dat do databáze a protokolováním transakcí.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Musim se priznat, ze s MySQL 4.x jsem jeste nepracoval. Momentalne pouzivam MySQL 3.23.52. Pri psani serialu jsem cerpal z manualu k teto verzi.
Co nejdrive to ale napravim a pokud budou zmeny takove, ze neco z mnou napsaneho uz nebude platit, samozrejme clanek doplnim. Bohuzel to bude nejaky cas trvat, takze do zitrka to rozhodne nebude 
diky :)
Reseni by bylo (doma) zapnout protokolovani zmen dat a struktury tabulek. (Do souboru protokolu se zapisou vsechny SQL prikazy, ktere vyvolaly zmenu dat nebo struktury tabulek) a pak (na serveru) davkove spracovat SQL prikazy z (doma) vznikleho souboru protokolu.
Pristi dil se bude protokolovanim transakci zabyvat. Primo o synchronizaci se tam nezminuji, ale ono to z toho vyplyva. I kdyz zminit bych se o tom mohl
.
use mysq a pak INSERT INTO user...;, nesmíte zapomenout po tomto příkazu zavolat ještě flush privileges;. Teprve pak MySQL-server přizpůsobí své chování změnám v tabulce user a dovolí novému uživateli přihlášení.