Portál AbcLinuxu, 9. srpna 2025 13:39


Dotaz: Práva v MySQL

28.8.2007 21:58 Sir Mikhail | skóre: 10
Práva v MySQL
Přečteno: 458×
Odpovědět | Admin
Jen se chci ujisti o jedné věci v mysql, kteoru jsem zřejmě nepochopil. Zadal jsem za roota

grant all privileges on *.* to root@'%' identified by 'heslo' with grant option;

poté jsem zrusil ostatni zaznamy v phpmyadmin (uz mi to blbnulo driv a chtel jsem si overit, jak to je). Zustal mi tedy uzivatel ROOT pro pocitac % s heslem (ANO), globalnimi pravy ALL PRIVILEGES a pravem pridelovani. Ocekaval bych, ze ted root muze delat vsechno odkudkoli ... pritom se mi ukazalo, ze se ani nemohu prihlasit do databaze (ani v phpmyadmin, ani v konzoli na ssh nebo primo na serveru).

Je to opakovana chyba. Co delam spatne?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.8.2007 22:08 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Práva v MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vždycky jsem se pral s tou identifikací stroje v příkazu grant. Tam bych se možná zkusil zaměřit.
28.8.2007 22:24 Sir Mikhail | skóre: 10
Rozbalit Rozbalit vše Re: Práva v MySQL
Ja to klidne muzu nastavit jako zvlastniho uzivatele na kazdym rozhrani, ale pripadne mi to nejak pres hlavu ... :)
Milan 28.8.2007 22:31 Milan "Nemo" Cingroš | skóre: 27 | blog: Nautilus | Plzeň
Rozbalit Rozbalit vše Re: Práva v MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nezkoumal jsem proč, ale ty % místo názvu počítače mi asi nikdy nefungovaly.
Soutěžte na české LinuxWiki a vyhrajte plyšového Tuxe.
28.8.2007 23:00 Sir Mikhail | skóre: 10
Rozbalit Rozbalit vše Re: Práva v MySQL
Aspon ze nejsem sam ... :)
29.8.2007 03:10 kafa | skóre: 10
Rozbalit Rozbalit vše Re: Práva v MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin

Zřejmě jste se dopustil zcela klasické chyby a neodstranil jste z tabulky user anonymní uživatele, které si MySQL implicitně vytváří. Pokud je host localhost a user prázdný, pak má přednost před %, protože je konkrétnější. Jenomže nesmí mít heslo. Výsledkem je, že se na compu, kde běží server, nepřihlásíte. Nejjednodužší je smazat anonymní uživatele příkazem

DELETE FROM user WHERE User = '';
FLUSH PRIVILEGES;

(Příkazem REVOKE to nejde, je třeba použít DELETE). Akorát teď nevím, jak se tam dostanete s rootem. Pokud je to tato klasická chyba, mělo by to ale jít z jiného počítače.

29.8.2007 08:48 sirmikhail | skóre: 3
Rozbalit Rozbalit vše Re: Práva v MySQL
Diky za informaci. Uz jsem si zabranil v pristupu driv, takze jsem se do databaze dostal pres skip grant tables a pak jsem primo v databazi zmeni opravneni, ale rad bych mel odkudkoli pristup s kazdym uzivatelem a mel ho tam jen jednou, to byl muj cil.

Problemem je tedy ucet GUEST, nebo co mate na mysli "anonymnim uzivatelem"?

Diky, M.
29.8.2007 14:58 kafa | skóre: 10
Rozbalit Rozbalit vše Re: Práva v MySQL

Pokud je v tabulce User prázdný uživatel, znamená to jakékoliv uživatelské jméno z daného hosta nebo žádné. Pochopitelně nesmí mít zadané heslo.Při iniciaci MySQL se vytváří dva anonymní uživatelé s Hostem localhost a %, kteří mají omezená práva na databáze, začínající řetězcem "test". Tedy

''@'localhost' a ''@'%'
.Při instalaci na Windows se navíc vedle
'root'@'localhost' vytváří 'root'@'%' ,
oba bez hesla se všemi právy. Pokud u druhého nezrušíte nebo i jemu nepřidáte heslo, budete mít při administraci spoustu pomocníků.

:-)
29.8.2007 15:04 kafa | skóre: 10
Rozbalit Rozbalit vše Re: Práva v MySQL

Oprava: Pokud druhého nezrušíte ...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.