Új felhasználó létrehozása és engedélyek megadása a MySQL-ben
A MySQL egy népszerű és széles körben használt adatbázis-kezelő rendszer, amely tárolja és rendszerezi az adatokat, és lehetővé teszi a felhasználók számára azok lekérését. Számos opcióval rendelkezik, amelyek bizonyos engedélyeket adnak a felhasználóknak a táblákhoz és adatbázisokhoz.
Ebből az útmutatóból megtudhatja, hogyan hozhat létre új felhasználót, és hogyan adhat engedélyeket a MySQL adatbázisban.
Hogyan hozzunk létre új felhasználót a MySQL-ben
Új felhasználó létrehozásához először jelentkezzen be a MySQL shellbe.
sudo mysql -u root -p
Adja meg a sudo jelszót, majd azt a jelszót, amelyet a MySQL adatbázis beállításakor adott, és nyomja meg az ENTER billentyűt. Ezt követően ezt a felszólítást fogja kapni.
Új felhasználó létrehozásához használja az alábbi szintaxist:
MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Például egy „tecmint” nevű új felhasználó létrehozásához az adatbázisban, hívja meg a következő parancsot:
MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';
Néhány megjegyzés, amit észben kell tartani
Amikor helyileg ad hozzá egy felhasználót, azaz azon a rendszeren, amelyre telepítette a MySQL-t, a felhasználó gazdagépe localhostként van megadva, nem pedig az IP-cím. A „localhost” kulcsszó jelentése „ez a számítógép”, és a MySQL egyedileg kezeli. Alapvetően a localhost-ot a mysql kliens használja arra, hogy kapcsolatot létesítsen a helyileg telepített MySQL adatbázis-kiszolgálóval.
Eddig a tecmint felhasználónak nincs engedélye az adatbázisokkal való interakcióhoz. Ami azt illeti, a felhasználó még a MySQL shell-hez sem férhet hozzá.
Futtassa, hogy a felhasználó teljes hozzáférést biztosítson az összes adatbázishoz, beleértve a táblákat is.
MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';
A fenti parancsban a csillagok az adatbázisra és a táblára mutatnak, amelyhez a felhasználó hozzáférhet. Minden jogot biztosít a felhasználónak az adatbázishoz – olvasás, írás, szerkesztés, és végrehajtás, beleértve az összes végrehajtást. a feladatokat más adatbázisokban és táblákban is.
Eddig teljes hozzáférést biztosítottunk a felhasználónak az adatbázishoz. Bár ez hasznos a MySQL-fogalmak magyarázatában, általában nem ajánlott, mivel biztonsági kockázatot jelenthet az adatbázisaira nézve. Gondoljon csak bele, mi történhet, ha egy hacker megszerezné a felhasználó jelszavát. Tovább fogunk haladni, és a következő részben megvitatjuk, hogyan rendelhetünk hozzá bizonyos engedélyeket.
Ha végzett az engedélyek hozzárendelésével a felhasználóhoz, töltse be újra az összes jogosultságot a képen látható módon, hogy a változtatások érvénybe lépjenek.
MariaDB [none]> FLUSH PRIVILEGES
Különböző felhasználói engedélyek megadása
Íme a felhasználóknak megadható lehetséges engedélyek lebontása:
- MINDEN JOGOSULTSÁG – Amint korábban láttuk, ez teljes hozzáférést biztosít a MySQL-felhasználók számára egy adott adatbázishoz.
- CREATE – Lehetővé teszi a felhasználók számára új adatbázisok vagy táblák létrehozását.
- DROP – Lehetővé teszi a felhasználók számára adatbázisok vagy felhasználók törlését.
- INSERT – Lehetővé teszi a felhasználók számára, hogy sorokat szúrjanak be a táblázatokba.
- TÖRLÉS – Lehetővé teszi a felhasználók számára, hogy sorokat töröljenek a táblázatokból.
- SELECT – a „SELECT” engedéllyel a felhasználók elolvashatják egy táblázat tartalmát.
- FRISSÍTÉS – Lehetővé teszi a felhasználók számára, hogy frissítsék a táblázat sorait.
- BEADÁSI LEHETŐSÉG – A felhasználók megadhatják vagy eltávolíthatják más felhasználók jogosultságait.
Egy adott felhasználó engedélyének megadásához használja a következő szintaxist:
MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';
Ezenkívül engedélyeket rendelhet az adatbázisban lévő összes táblához egyetlen csillag szimbólummal, az alábbi módon:
MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';
Ha például a SELECT engedélyeket szeretné hozzárendelni a „tecmint” felhasználóhoz a testdb adatbázis összes tábláján, futtassa a parancsot.
MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';
Ezután öblítse ki a jogosultságokat, hogy a változtatások életbe lépjenek.
MariaDB [none]> FLUSH PRIVILEGES;
Ezenkívül egyszerre több engedélyt is hozzárendelhet, ha vesszővel választja el őket az ábrán látható módon.
MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';
Hogyan lehet visszavonni a MySQL engedélyeket
A felhasználó engedélyeinek visszavonásához használja a következő szintaxist:
MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';
Például a „tecmint” felhasználó INSERT engedélyeinek visszavonásához futtassa a parancsot.
MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES
Ha meg szeretné tekinteni a felhasználó aktuális engedélyeit, hajtsa végre a következőt:
MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';
Az alábbi kimenetből láthatjuk, hogy az INSERT engedélyt törölték a 'tecmint' felhasználótól, így csak a SELECT és az UPDATE marad. jogokat a testdb adatbázisban.
A MySQL shellbe való bejelentkezés teszteléséhez az új felhasználó használatával először jelentkezzen ki.
MariaDB [none]> quit;
Ezután jelentkezzen be újra.
sudo mysql -u tecmint -p
Adja meg a felhasználó jelszavát, és nyomja meg az ENTER billentyűt a shell eléréséhez.
Egy felhasználó elvetéséhez használja a DROP parancsot, ugyanúgy, mint az adatbázis törlésekor.
MariaDB [none]> DROP USER 'username'@'localhost';
Érdemes elolvasni a következő MySQL-lel kapcsolatos cikkeket is:
- Hasznos tippek a MySQL gyakori hibáinak elhárításához
- Mytop – Hasznos eszköz a MySQL/MariaDB teljesítményének nyomon követésére Linux alatt
- Az alapértelmezett MySQL/MariaDB port megváltoztatása Linuxban
- A MySQL vagy a MariaDB gyökérjelszó visszaállítása Linux alatt
Következtetés
Remélhetőleg mostanra már létrehozhat felhasználókat a MySQL adatbázis-kiszolgálókon, és kényelmesen hozzárendelheti vagy visszavonhatja az engedélyeket.