Rusko zcela zablokovalo komunikační platformu WhatsApp, řekl včera mluvčí Kremlu Dmitrij Peskov. Aplikace, jejímž vlastníkem je americká společnost Meta Platforms a která má v Rusku na 100 milionů uživatelů, podle Peskova nedodržovala ruské zákony. Mluvčí zároveň lidem v Rusku doporučil, aby začali používat domácí aplikaci MAX. Kritici tvrdí, že tato aplikace ruské vládě umožňuje lidi sledovat, což úřady popírají.
Před 34 lety, ve čtvrtek 13. února 1992, se tehdejší Česká a Slovenská Federativní Republika oficiálně (a slavnostně) připojila k Internetu.
Agent umělé inteligence vytvořil 'útočný' článek o Scottu Shambaughovi, dobrovolném správci knihovny matplotlib, poté, co vývojář odmítl agentem navrženou změnu kódu (pull request). 'Uražený' agent autonomně sepsal a publikoval na svém blogu článek, který přisuzuje Shambaughovi smyšlené motivace, egoismus a strach z AI coby konkurence.
Bylo vydáno Ubuntu 24.04.4 LTS, tj. čtvrté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.
V pátek 20. února 2026 se v pražské kanceláři SUSE v Karlíně uskuteční 6. Mobile Linux Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj a uživatelský prostor. Akce proběhne od 10:00 do večera. Hackday je určen všem, kteří si chtějí prakticky vyzkoušet práci s linuxovým jádrem i uživatelským prostorem, od posílání patchů například pomocí nástroje b4, přes balíčkování a Flatpak až po drobné úpravy
… více »Evropská rada vydavatelů (EPC) předložila Evropské komisi stížnost na americkou internetovou společnost Google kvůli její službě AI Overviews (AI souhrny), která při vyhledávání na internetu zobrazuje shrnutí informací ze zpravodajských serverů vytvořená pomocí umělé inteligence (AI). Evropská komise již v prosinci oznámila, že v souvislosti s touto službou začala firmu Google vyšetřovat. Google obvinění ze strany vydavatelů
… více »Ubuntu 26.04 (Resolute Raccoon) už nebude v desktopové instalaci obsahovat GUI nástroj 'Software & Updates'. Důvodem jsou obavy z jeho složitosti pro běžné uživatele a z toho plynoucích bezpečnostních rizik. Nástroj lze doinstalovat ručně (sudo apt install software-properties-gtk).
Thomas Dohmke, bývalý CEO GitHubu, představil startup Entire - platformu pro spolupráci vývojářů a agentů umělé inteligence. Entire získalo rekordních 60 milionů dolarů na vývoj databáze a nástrojů, které mají zefektivnit spolupráci mezi lidmi a agenty umělé inteligence. Dohmke zdůrazňuje potřebu přepracovat tradiční vývojové postupy tak, aby odpovídaly realitě, kdy většinu kódu produkuje umělá inteligence.
Toyota Connected North America oznámila vývoj open-source herního enginu Fluorite, postaveného na frameworku Flutter. Pro renderování grafiky využívá 3D engine Filament od společnosti Google a dle svého tvrzení cílí na konzolovou kvalitu her. Fluorite je zřejmě navržen tak, aby fungoval i na méně výkonném hardware, což naznačuje možnost použití přímo v ICE systémech vozidel. Zdrojový kód zatím zveřejněný není.
Byl vytvořen nástroj a postup pro překonání věkového ověření platforem Discord, Kick, Twitch, Snapchat (a možná dalších), kód je open-source a dostupný na GitHubu. Všechny tyto sítě používají stejnou službu k-ID, která určuje věk uživatele scanem obličeje a na původní server posílá pouze šifrovaná metadata, ty ale sociální síť už nedokáže sama nijak validovat, 'útok' spočívá ve vygenerování a podstrčení legitimně vypadajících ověřovacích metadat.
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í.