Hlavná stránka · Diskusné Fórum · Pracovné príležitosti · Zoznam

 Main Menu
o Hlavná stránka
o Zoznam tém
o Zoznam
o Odporučte nás
o Užívatelia
o Vaše konto
o Pridaj článok
o Štatistiky
o Top 10

 Reklama


 Developer Zone's
o Internet
o Tools
o Linux
o CGI Zone
o ASP Zone
o ASP.net
o PHP Zone
o CSS Zone
o JavaScript
o MySQL
o WAP / WML
o WML / WMLScript
o XML / XHTML
o Tipy a triky
o Best of web
o WebServers
o WebDesign
o Grafika

 Servis
o Vyhľadávanie
o Fórum
o Workoffice
o Zoznam článkov
o Reklama
o Pridaj článok
o Pridaj novinku

Napíšte nám
Homepage Do favoritov

 LinkExpres
Interval.cz · Pc.sk
Builder.cz · Mobilmania
PCSvet.cz · Asp.cz
Webdnes · Živě.sk
Zoznam.sk · Atlas.sk
Inzine.sk · PHP.sk
Agent.sk · Lupa.cz
Code.box.sk · Root.cz
Pixel32 · Grafika.cz

 forum.developer.sk
o Fórum ::
o Markup languages
o Scriptové jazyky
o CGI
o PHP/MySQL
o Perl
o Grafika
o Webservery
o HTML Editory
o Browsery
o Bookmarx
o ASP
o Vytvor tému ::

 Pracovné príležitosti
o Ponúkate prácu?
o Hľadáte prácu?

 Autori developer.sk
o Martin Nemeček
o Sväťo Straka
o Jany Masaryk
o Jozef Murín

 
MySQL [ 24. July 2000] - Martin_Nemecek
MySQL časť jedenásta - nastavovanie prístupových práv
Databázu a tabuľky máme hotové, naplnili sme si ich aj údajmi, rôznym spôsobom sme si ich skúšali vyberať, ďalej sme ich modifikovali a mazali, menili štruktúru tabuľky. Dnes našim tabuľkám pridelíme zodpovedajúce prístupové práva.



Hlavným dôvodom je ich zabespečenie pred nepovolaným a neautorizovaným prístupom. Pre každú tabuľku v databáze môžeme nadefinovať, ktorý užívateľ má k nej prístup a na akej úrovni. Čiže aké operácie s ňou môže vykonávať. K nastaveniu týchto prístupových práv slúži príkaz GRANT. Jeho použitie je nasledovné:

GRANT /práva/
ON /nazov_tabulky/
TO /meno_uzivatela/

Položka /práva/ zodpovedá nastaveniu prístupových práv na danú tabuľku. Na tomto mieste môžeme použiť niekoľko príkazov MySQL, na ktoré sa bude pridelenie prístupového práva vzťahovať. Jedná sa o tieto príkazy: SELECT, INSERT, UPDATE a DELETE. Ak chceme prideliť všetky prístupové práva na danú tabuľku, použijeme príkaz ALL.

Za ON v našom príklade musí nasledovať meno tabuľky, pre ktorú dané oprávnenia nastavujeme. Na záver, za TO, zadáme užívateľa na ktorého sa dané nastavenie vzťahuje.

Nad databázou, ktorú úžívateľ vytvoril má väčšinou absolútne práva a je oprávnený na nej vykonávať akékoľvek operácie. Ak však vytvoríme script, pomocou ktorého budeme otvárať našu db a pracovať s ňou, je výhodnejšie - z bespečnostného hľadiska vytvoriť nového užívateľa a prideliť mu len tie práva, ktoré sú nevyhnutné na prácu s db.

Ak teda chceme užívateľovi "nobody" povoliť plný prístup k tabuľke "Videofilmy", použijeme nasledovný príkaz:

GRANT ALL ON Videofilmy TO nobody

Keď budeme chcieť užívateľovi "nobody" dať iba prístup na prezeranie tabuľky, použijeme nasledovný zápis:

GRANT SELECT ON Videofilmy TO nobody

Ak budeme potrebovať z nejakého dôvodu odobrať určitému užívateľovi prístupové práva do nejakej tabuľky, urobíme to jednoducho pomocou príkazu REVOKE:

REVOKE /práva/
ON /nazov_tabulky/
TO /meno_uzivatela/

Nie je však všetko také jednoduché ako na prvý pohľad vypadá. Tento systém prideľovania a odoberania príst. práv nefunguje na všetkých serveroch. Príkaz GRANT totiž všetky serveri nepodporujú. Aj keď sa síce tvária že áno (keď prístupové právo pomocou GRANT pridelíte, všetko vypadá o.k, server neprotestuje až na jednu drobnosť - prístup nefunguje...) Pôjdeme na to teda inak. A síce takto:

Najskôr sa prihlásíme do db ako root:

mysql - u root -p mysql

Teraz pridáme užívateľa "deep" s heslom "214@abc" a predpokladajme že sa bude môcť hlásiť len z lokálného stroja. To znamená, že web server musí bežať na lokálnom počítači, teda tom na ktorom sa bude hlásiť užívateľ "deep". Teraz pridáme užívateľa "deep" do tabuľky užívateľov "user":

INSERT INTO user (host, user, password)
VALUES ('localhost', 'deep', password('214@abc'));

Užívateľa sme pridali, teraz nám už zostáva pridať mu prístupové práva (rozhodneme sa pre čítanie z db-moja_databaza):

INSERT INTO db (host, db, user, select_priv)
VALUES ('%', 'moja_databaza', 'deep', 'Y');

Ak by sme chceli užívateľovi "deep" prideliť aj iné prístupové práva, pomocou príkazu INSERT s príznakom 'Y' nastavíme ďalšie položky: insert_priv, delete_priv, update_priv.

Po zmene prístupových práv je potrebné aby si ich MySQL server znovu načítal. To môžeme uskutočniť pomocou nasledovného príkazu:

mysql -u root -p reload


 
 Príslušné odkazy k téme
Viac o téme: MySQL | Iné články od: Admin | Pošli komentár | Stránka vhodná na tlač width=15 height=11  Pošli tento článok priateľovi, známemu width=15 height=11


Najčítanejšie články MySQL:
MySQL časť štrnásta - najčastejšie kladené otázky

Ďalšie články v rubrike MySQL:

 

"MySQL časť jedenásta - nastavovanie prístupových práv" | Login / vytvor konto | 3 Komentárov
Prah
Za obsah komentárov je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok.

chyba (Skóre: 0)
kým: Anonym dňa 26. April 2001

posledni prikaz by podle mne mel znit
mysqladmin -u root -p reload. honza p.

[ Odpoveď ]

Re: MySQL časť jedenásta - nastavovanie prístupových práv (Skóre: 0)
kým: Anonym dňa 19. May 2001

Uz je to nejaky dlouhy cas, co jsem tu cetl takovyto clanek ohledne pridelovani prav, a ze je nutne MySQL reloadnout a pote take uplne vypnout a zapnout. Literatury sice uvadeji, ze to staci jen reloadnout, ale zkusenost je takova, ze je potreba server po reloadu vypnout a zapnout. Opravdu mi to podle toho navodu fungovalo. Ale pokud to zkousim nyni, tak mi to nefunguje a nevim, kde delam chybu. pokud napisu: myslq -u root -p reload, tak se rpesi prihlasuju do DB reload a nasledne me to vyzve k zapsani hesla. Rozhodne tim nereloadnu server. Nejak si nyni nemohu vzpomenout, jak je prikaz pro reload, a proto sem vlastne pisi. Nemohu najit totiz ten clanek, co zde byl uveden a opravdu mi to podle neho fungovalo.
Diky.
debak@hkcz.cz

[ Odpoveď ]




Autorské práva:   ©1999 - 2001 Developer Zone [developer@developer.sk]

Všetky články sú vlastníctvom autorov Developer Zone. Všetky práva vyhradené. Stránky Developer.sk sú vytvorené pomocou PHP-Nuke.
Odkazy na nové články je možné preberať pomocou:Backend.php.