Od autora: Savjetovao bih vam da budete oprezni sa privilegijama. Jedan moj poznanik, koji ima administratorska prava u svom stanu, dao je svojoj ženi "privilegiju" da ograniči pristup frižideru. Zbog toga je već drugi mjesec na dijeti i jede samo povrće. Stoga, čak i prije nego što dodate korisnika u MySQL, dobro razmislite!
Oni kojima vjerujemo!
Ali ipak, na svijetu postoje ljudi kojima se može vjerovati. I naravno, ovo nije žena ili svekrva. Naučimo danas kako dodati račune u MySQL i dati im određene privilegije.
Ovo se može uraditi i kroz komandnu liniju i kroz programske školjke. Počnimo s jednostavnom opcijom. Koristimo phpMyAdmin za dodavanje novog korisnika. Ali prvo, hajde da napravimo malu digresiju u sistem naloga koji je implementiran u DBMS.
Najviši korisnik u hijerarhiji je korisnik sa root nalogom. U početku, ovaj račun dolazi s praznom lozinkom. Administrator (root) može dodati korisnika u MySQL, dati mu određena prava, ali i lišiti privilegija.
Sistem privilegija implementiran je ne samo na DBMS serveru, već i na nivou baze podataka. Možete dati korisniku pristup određenoj bazi podataka, a također mu dopustiti da obavlja samo određene operacije sa "skladištem". Na primjer, zabraniti umetanje, brisanje i ažuriranje podataka, ali dopustiti odabire iz tabela. Ali sve je to lakše naučiti u praksi, pa hajde da počnemo.
Dodavanje naloga preko phpMyAdmin
Otvorite aplikaciju, idite na karticu "Korisnici" na vrhu. Ovo će prikazati tabelu "Pregled računa". Navodi sve račune koji postoje na instanci servera, kao i sažetak njihovih privilegija.
Da biste dodali novi nalog, potrebno je da kliknete na link "Dodaj korisnika" koji se nalazi ispod tabele. Nakon toga, aplikacijski sistem će prikazati poseban dijaloški okvir "Dodaj korisnika".
U gornjem dijelu ("Informacije o računu"), trebate navesti ime za novog korisnika, postaviti i potvrditi lozinku. Također možete dobiti nasumičnu vrijednost lozinke koja će automatski biti zamijenjena u polja. Da biste to učinili, kliknite na dugme "Generiraj".
Ako skrolujete malo prema dolje, tada će globalne privilegije postati dostupne za uređivanje, koje se mogu dati korisniku koji se kreira. Snimak ekrana pokazuje da su sve privilegije podijeljene u nekoliko kategorija: "Podaci", "Struktura" i "Administracija". Prije dodavanja korisnika u MySQL, pročitajte ih i provjerite one koji su vam potrebni.
Da biste kreirali nalog, kliknite na dugme Dodaj korisnika na dnu dijaloškog okvira. Pogledajmo sada rezultat naših akcija. Vratite se na tabelu "Pregled računa" i pregledajte njen sadržaj. Kao što vidite, kreiran je novi nalog na serveru sa imenom koje smo naveli.
Dodajte novog korisnika baze podataka
Preko phpMyAdmin-a možete upravljati ulogama ne samo globalno, već i na nivou pojedinačnih baza podataka. Da biste dodali korisnika u bazu podataka u MySQL, odaberite onoga koji vam je potreban na listi s lijeve strane. Zatim prođite kroz stavku menija "Privilegije", gdje će tabela prikazati sve korisnike koji imaju pristup ovoj bazi podataka. Da kreirate novi nalog baze podataka, kliknite na link "Dodaj korisnika" koji se nalazi malo ispod (ispod tabele).
Nakon toga će se pojaviti već poznati dijalog "Dodaj korisnika". Popunjavamo sva polja, kao u prethodnom primjeru. Obdarićemo leha2 globalnim privilegijama na svetskoj bazi - neka radi sa ovim svetom šta hoće. I kliknite na dnu "Dodaj korisnika".
Kontrola mogućnosti kreiranih korisnika
Hajde da shvatimo koji zadnji "Lech" možemo stvoriti. Idite na komandnu liniju. Ulazimo na server i vršimo selekciju iz baze podataka za koju je korisnik dodan u MySQL: Z: \ usr \ local \ mysql-5.5 \ bin \ mysql.exe -u leha2 -p123
Pokušajmo sada ući u drugu bazu podataka pod ovim računom (leha2), i također napraviti izbor iz nje. Na primjer, iz ove baze podataka:
SELECT * FROM `db1`.`animal`;
SELECT * IZ `db1`. `životinja`; |
Ali kao odgovor dobijamo od MySQL-a "u tyk", pošto račun koji se koristi ima prava samo na svjetsku bazu podataka.
Ali to nisu sve opcije administracije privilegija. Možete dodati korisnika samo za pregled u MySQL. Da biste to učinili, uredite tabelu prava postojećeg naloga ili kreirajte novi.
Idite ponovo na karticu "Privilegije". U tabeli korisnika, pored potrebnog naloga, kliknite na „Uredi privilegije“. Zatim, u dijaloškom okviru koji se pojavi, isključite sve privilegije osim odabira. Dakle, korisnik može samo pregledati tabele ili napraviti odabir iz njih koristeći SQL SELECT naredbu.
Kreiranje korisnika preko konzole
Naučimo kako dodati korisnika u MySQL putem konzole. Da bismo to učinili, moramo se prijaviti na server baze podataka s administratorskim pravima. Zatim, koristeći naredbu CREATE, kreirajte novog korisnika i postavite lozinku za njega:
CREATE USER "verter" @ "localhost" IDENTIFIKOVANO SA "12345";
CREATE USER "verter" @ "localhost" IDENTIFIKOVANO SA "12345"; |
Sada se vratimo na softversku ljusku i vidimo da li se "robot" koji smo kreirali pojavio u tabeli "Pregled računa".
Kao što vidite, verter je postao korisnik našeg MySQL servera. Ali on nema nikakva prava (kao svaki robot). Toliko neetično u odnosu na našu "gvozdenu" braću, pa ćemo mu obezbediti sve privilegije na bilo koju od baza. Na primjer, svijet.
Zajednička karakteristika MySQL-a je njegova vlastita sigurnost, oslanjajući se na vanjsku sigurnost. Kao moderan, potpuno funkcionalan i efikasan sistem za upravljanje bazom podataka, MySQL ima sopstvene alate za upravljanje korisnicima i njihovim pristupom resursima koje kontroliše.
Ako ne znate ispravno korisničko ime i lozinku, pristupite bazi podataka preko MySQL veoma teško dobiti.
U uobičajenom načinu hostinga, ovo je sasvim dovoljno. Nepredviđene situacije, hakerski napadi i druge nevolje stvar su eksterne administracije sistema i sigurnosnih službi. Ovaj koncept je postao tradicionalan i o njemu se praktički ne raspravlja.
Instalacija MySQL servera i root korisnika
U kojem god operativnom okruženju sistem za upravljanje bazom podataka instaliran, uvijek ima najmanje jednog korisnika: root. Instalirajte MySQL, kreirajte korisnika sa svim root pravima - bez toga rad sa serverom je nemoguć. Privilegije ovog korisnika su dovoljne za:
- kreirati i administrirati nove korisnike;
- kreirati i upravljati bazama podataka.
U principu, moguće je da MySQL ima korisnike "bez lozinke", ali to je neprihvatljivo.
Jednostavna praksa:
- server je instaliran na sopstvenom računaru, na kojem se može instalirati hosting (lokalna verzija);
- server se nalazi na Internetu.
U prvom slučaju je moguće raditi sa serverom iz komandne linije i koristiti phpMyAdmin, u drugom slučaju samo phpMyAdmin ili sličan alat, ali je komandna linija dostupna putem udaljenog SSH pristupa.
Vlastiti administrativni alati
Osećaj srodnosti sa unixoid porodicom i prošlošću Apache servera je karakteristika MySQL-a: kreiranje korisnika je komandna linija sa čudnom sintaksom. Za stručnjake koji rade sa Linuxom i sličnim sistemima, ovo je poznato koliko i divlje u očima Windows korisnika koji nikada nisu "ušli u stvarni život".
Kreiranje korisnika počinje pokretanjem komandne linije servera. U Windows okruženju to se radi na sljedeći način.
Prvo (1) treba da pokrenete komandnu liniju kao administrator, zatim idite u fasciklu u kojoj se nalazi MySQL (2), zatim pokrenite sam server (3):
- mysql -u ... -p
ovdje su "-u ..." i "-p" ključevi koji ukazuju na ime "..." = root (ili drugo ime) i njegovu lozinku. U principu, korisnik možda nije root, već onaj koji ima "root" (administrativna) prava.
Znatno: server je zapravo uvijek pokrenut, ovdje mysql -u ... -p je komanda za pristup serveru, a ne za pokretanje.
U Linuxu i sličnim sistemima, takva naredba je "native" radnja i po pravilu se određuje jednostavnim pokretanjem mysqld na pravom mjestu (na pravom putu), to treba provjeriti kod administratora. Ovo je obično drugačije ime: ne mysql, već mysqld. Takođe, ovde ova akcija nije uvek dostupna svim korisnicima (operativnog sistema, a ne MySQL servera). Za razliku od Windows-a, u Linuxu su red i sigurnost prirodan zahtjev o kojem se ne raspravlja, prema kojem uvijek postoji civiliziran stav.
U svakom slučaju, čim se mysql pokrene, obavijestit će vas o tome sa promptom (4):
- mysql>
i biće moguće raditi i sa korisnicima i sa bazama podataka.
Bilješka. Prilikom instalacije u Windows okruženju, sve: Apache, MySQL, može se instalirati na zadanim stazama, ali se preporučuje korištenje kompaktnijih i bližih lokacija za ove važne alate:
- c: \ SCiA \ Apache;
- c: \ SCiA \ PHP;
- c: \ SCiA \ MySQL;
- c: \ SCiB \ localhost \ www \ phpMyAdmin \;
- c: \ SCiB \ site1 \ www \;
- c: \ SCiB \ site2 \ www \;
- c: \ SCiB \ siteN \ www \.
Ova logika ne samo da će pojednostaviti administraciju, već će i proširiti sposobnost programera da se kreće između verzija proizvoda i upravlja njihovom funkcionalnošću.
Rad u MySQL komandnoj liniji
Nakon što server odgovori i pruži svoju komandnu liniju, možete kreirati korisnike i dodijeliti im prava.
U ovom primjeru, naredba create user kreirala je korisnika Petrov sa lozinkom 123DFG. Ako se napravi greška prilikom unosa komande, server nudi da se popravi, ali je bolje kada se radi u komandnoj liniji. nikada ne greši!
Sljedeća naredba dodijeli sve privilegije daje sva prava na sve. Naredba flush se može izostaviti, ali ona "ispira" bafer komande, odnosno popravlja njihovo izvršavanje.
MySQL: kreirajte korisnika i dodijelite prava na bazu podataka
Naredba korištena u primjeru:
- DODAJTE SVE PRIVILEGIJE NA *. * "Petrov" @ "localhost";
zapravo otvara pristup korisniku Petrov svim bazama podataka (prva zvezdica) svim tabelama (druga zvezdica).
Kao opšte pravilo MySQL-a, kreiranje korisnika je:
- GRANT [tip privilegije] ON [ime baze podataka] [Naziv tabele] TO "[user]" @ "localhost";
Dozvoljene su sljedeće privilegije:
- SVE PRIVILEGIJE - sva prava.
- CREATE - pravo kreiranja novih tabela/baza podataka.
- DROP - pravo na ispuštanje tabela/baza podataka.
- DELETE - pravo brisanja informacija u tabelama.
- INSERT - pravo upisivanja informacija u tabele.
- SELECT - pravo čitanja informacija iz tabela.
- UPDATE - pravo ažuriranja informacija u tabelama.
- OPCIJA GRANT - pravo na rad uz privilegije drugih korisnika.
Sa praktične tačke gledišta, u MySQL-u "kreiraj korisnika" podrazumeva tri vrste prava:
- sva prava na sve baze podataka i sve korisnike;
- čitanje i pisanje;
- samo čitanje.
Ostale opcije za dodjelu prava su malo kada je potrebno. U okruženju Linux sistema postoji mnogo više osnova za "pravnu" slobodu (i neophodnost), ali tu ima mnogo više mogućnosti nego u Windowsu.
Suprotnost MySQL "kreiraj korisnika" je ispuštanje.
- ispusti korisnika "Petrov" @ "localhost";
Nakon izvršenja ove komande, korisnik Petrov će nestati i njegove privilegije će biti izgubljene. Za promjenu privilegija koristite naredbu:
- REVOKE [privilege] ON [db] [Tablica] TO "[user]" @ "localhost";
Uobičajena radnja u MySQL-u je kreiranje korisnika ili brisanje i ništa više, ali promjena privilegija je također valjana operacija (rijetko potrebna).
Koristeći phpMyAdmin
Postoji mnogo implementacija ovog sjajnog alata. U zavisnosti od verzije Apache-a, PHP-a i MySQL-a koji se koristi, često je potrebno mnogo vremena za traženje potrebne verzije ovog proizvoda, ali kada se phpMyAdmin uspešno instalira, korisnik ima mnogo praktičnih funkcija i udoban interfejs.
Koristeći phpMyAdmin, možete reći MySQL-u da kreira korisnika za bilo koji host i upravlja postojećim korisnicima gotovo hirurškim metodama.
phpMyAdmin nije jedini alat sa udobnim, intuitivnim i bogatim interfejsom, ali je najpopularniji alat za administriranje MySQL servera.
O komandnoj liniji i sigurnosti
Naravno, korištenje MySQL komandne linije je neprivlačno iskustvo, ali treba imati na umu da u nekim slučajevima samo komandna linija servera može sačuvati bazu podataka ili korisnika, omogućiti uvoz ili izvoz informacija.
Verzije softverskih proizvoda se razvijaju tako brzo da programeri jednostavno nemaju vremena za kombiniranje funkcija, na primjer, PHP i MySQL, MySQL i phpMyAdmin. Ako se nešto dogodi, komandna linija će uvijek spasiti stvar.
Takođe nikada ne treba zaboraviti: MySQL administracija se tiče samo pristupa njegovim bazama podataka i kroz njegovu funkcionalnost. Fajlovi baze podataka su otvoreni za pristup izvan MySQL-a. Eksterna sigurnost za MySQL i resurse koje on kontroliše je stvarna i važna potreba.
U ovom članku ćemo vam pokazati kako da kreirate nove korisničke dozvole i privilegije za ovog korisnika u MySQL-u. MySQL je sistemski vođena relaciona baza podataka otvorenog koda (DBMS) koja omogućava korisnicima i aplikacijama da skladište, organizuju i dohvate svoje podatke. Ima sistem kontrole pristupa koji se sastoji od dozvola koje korisnici mogu imati na tabelama i bazama podataka, pogledaćemo neke od varijacija ovog sistema kontrole pristupa opisanih kasnije u ovom vodiču.
Počnimo s prijavom
Za prijavu na naš MySQL sistem koristimo sljedeću naredbu:
# mysql -u root -p
Kada izvršimo ovu naredbu, kažemo MySQL klijentu da smo prijavljeni sa superkorisnikom i dajemo korisničku lozinku.
Kreirajte novog korisnika
Sada kada smo unutar našeg MySQL servera, možemo uputiti MySQL da kreira novog korisnika sa sljedećim upitom:
CREATE USER "new_user" @ "localhost" IDENTIFIKOVANO JE "password";
Savjet : Uvijek koristite jaku lozinku za sve račune. Što možeš.
Još jedna zanimljiva stvar u vezi sa ovom komandom je da ime hosta novog korisnika kojeg smo upravo kreirali može biti različito ime hosta ili IP adresa ako želimo da se korisnik prijavi na daljinu.
kao primjer:
CREATE USER "new_user" @ "10.20.30.111" IDENTIFIKOVANO JE "password";
Recimo da želimo našim novim korisnicima dati prava pristupa kako bi oni mogli čitati podatke iz svih baza podataka na našem MySQL serveru. To radimo unosom sljedeće naredbe:
GRANT SELECT ON *. * TO "new_user" @ "localhost";
Kada izvršavamo gornji upit, nalažemo MySQL-u da našem novom korisniku da dozvolu da koristi naredbu SELECT za čitanje iz baze podataka na našem MySQL serveru, za to smo koristili ključnu riječ SELECT. GRANT SELECT govori MySQL-u da korisnik neće imati ništa osim dozvola za čitanje podataka iz date baze podataka ili baza podataka. Dozvole se općenito daju u sljedećem formatu:
GRANT