Oktatóanyagok > Hogyan kezelhetők a felhasználók és az engedélyek a MySQL segítségével?

Hogyan kezelhetők a felhasználók és az engedélyek a MySQL segítségével?

Közzétéve: 08 június 2020

Database MySQL

Bevezetés

A MySQL a világ egyik legszélesebb körben használt nyílt forráskódú relációs adatbázis-kezelő rendszere, amelyen keresztül létrehozhat adatbázisokat, elmentheti és elolvashatja a benne tárolt adatokat.

A MySQL telepítése után létrejön egy rendszergazda felhasználó, aki teljes hozzáférést kap a rendszer összes adatbázisára. Biztonsági okokból ajánlott különféle MySQL-felhasználók létrehozása kisebb-nagyobb jogosultságokkal az engedélyek korlátozása és az adatbázisok illetéktelen módosításainak megakadályozása érdekében.

Ebben az oktatóanyagban megismerheti, hogyan kell telepíteni a MySQL-t a szerverre, ha még nincs telepítve, és hogyan lehet új MySQL-felhasználókat létrehozni és engedélyeket megadni az engedélyezés / visszavonás parancsokkal, akár adatbázisokban, akár csak egyes tábláikban.

Először csatlakozzon a szerverhez SSH kapcsolaton keresztül. Ha még nem tette meg, akkor ajánlott átböngésznie a Hogyan javítható az SSH biztonság az Ubuntu 18.04-en? útmutatónkat a folyamat megkezdése előtt. Helyi szerver esetén folytassa a következő lépéssel, és nyissa meg a szerver terminált.

A MySQL telepítése

Ha még nem telepítette a MySQL-t a szerverére, kövesse a telepítési és a biztonsági konfigurációs lépéseket. Ha viszont a MySQL már telepítve van a szerverre, ugorjon az útmutató következő bekezdésére.

A MySQL legújabb verziójának letöltéséhez először frissítse a Linux disztribúció tárakat. Ha korábban futtatta ezt a parancsot, hagyja ki ezt a lépést.

$ sudo apt update

Most folytassa a MySQL telepítését:

$ sudo apt install mysql-server

A telepítés ellenőrzéséhez figyelje meg a MySQL verziót:

$ sudo mysqld --version

Ha a telepítést helyesen hajtotta végre, a MySQL telepített verziója megjelenik a képernyőn.

A MySQL biztonsága a MySQL-hez mellékelt szkript futtatásával garantálható, amely növeli a biztonságot és korlátozza az adatbázisokhoz való hozzáférést. Gépelje be a következő parancsot:

$ sudo mysql_secure_installation

Ekkor egy varázsló végigvezeti a MySQL biztonsági konfigurációján.

Először megkérdezi, hogy engedélyezni szeretné-e a jelszó-ellenőrzési rendszert. Ha engedélyezve van, a felhasználói jelszó beállításakor kiértékeli a jelszavát, és ha nem felel meg a minimális biztonsági feltételeknek, akkor hibával elutasítja.

Ezután megkérdezi, hogy szeretné-e megváltoztatni a root jelszót. Ha engedélyezi a jelszóellenőrző rendszert, akkor a biztonsági kritériumoknak megfelelő jelszóra lesz szükség.

Végül válassza ki, hogy eltávolítja-e az anonim felhasználókat, teszteli-e az adatbázisokat, és letiltja-e a távoli bejelentkezést a root felhasználóval: az elfogadható biztonsági szint elérése érdekében ezeket a módosításokat mindenképp javasoljuk.

Ezen a ponton erősítse meg az engedélytáblázat frissítését az új biztonsági feltételek alkalmazásához.

A MySQL megfelelő működésének ellenőrzéséhez hitelesítse magát a következő paranccsal:

$ sudo mysql

Ha a MySQL sikeresen telepítve és konfigurálva van, megnyílik a MySQL parancsértelmező.

A MySQL konzolból való kilépéshez írja be az alábbi sort:

mysql > exit;

Új MySQL felhasználó létrehozása

Hogyan hozhatok létre új felhasználót a MySQL-ben?

Új felhasználók létrehozása csak a MySQL parancsértelmezőben lehetséges.

Jelentkezzen be hitelesítő adataival:

mysql

Ekkor hozza létre az új felhasználót a következő parancs beírásával:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

Megjegyzés: A „felhasználónév” és a „jelszó” helyére írja be azt a felhasználónevet és a jelszót, amivel a felhasználó hozzáférhet a MySQL szerverhez.

MySQL user creation

Engedélyek megadása és visszavonása a MySQL-ben

A létrehozott MySQL felhasználónak jelenleg nincsenek jogosultságai az adatbázisok eléréséhez és módosításához. Az engedélyek megadásához gépelje be, hogy mely adatbázisokkal és táblákkal kapcsolódhat a felhasználó.

A parancs szintaxisa a következő:

GRANT ALL PRIVILEGES ON *.* TO ‘username’@'localhost';

Megjegyzés: Az első csillag az adatbázist, míg a második az adatbázis táblákat jelző mezőt jelenti.

A fenti parancs esetén az összes adatbázishoz és azok kapcsolódó tábláihoz hozzáférés biztosít.

Ha ehelyett a parancsként azt írja be, hogy: "db_users. *", akkor a teljes hozzáférés csak a "db_user" nevű adatbázishoz biztosított. Hasonlóképpen, ha a parancsot a „db_name.users” meghatározással írja be, csak a „db_users” adatbázis „users” táblához kap hozzáférést a felhasználó.

A művelet után el kell végezni a jogosultságok belső frissítését. Ehhez futtassa a következő parancsot:

FLUSH PRIVILEGES;

MySQL privilege management

Az előző utasítással az új felhasználó minden engedélyt megkapott. Ugyanakkor a felhasználói engedélyek típusa is megadható.

  • ALL PRIVILEGES: teljes hozzáférést biztosít az adatbázishoz (vagy az előző parancsban leírtak szerint a teljes MySQL szerverhez);
  • CREATE: lehetővé teszi a felhasználó számára új adatbázisok és táblák létrehozását;
  • DROP: lehetővé teszi a felhasználó számára adatbázisok és táblák törlését;
  • DELETE: lehetővé teszi a felhasználó számára, hogy rekordokat töröljön a táblákból;
  • INSERT: lehetővé teszi a felhasználó számára rekordok beszúrását a táblákba;
  • SELECT: lehetővé teszi a felhasználó számára, hogy lekérdezze az adatbázisokat, hogy elolvashassa azok tartalmát;
  • UPDATE: lehetővé teszi a felhasználó számára, hogy módosítsa a táblákban található rekordokat;
  • GRANT OPTION: lehetővé teszi a felhasználó számára, hogy privilégiumokat adjon hozzá vagy távolítson el más felhasználóktól.

Röviden, ahhoz, hogy egy felhasználónak engedélyeket adjon, használja a GRANT parancsot a következő szintaxissal:

GRANT permission ON database.table TO ‘username’ @'localhost’;

Ahol:

  • permission: jelzi a felhasználónak megadandó engedély típusát (választva a fent felsoroltak közül);
  • database: azt az adatbázist jelöli, amiben a felhasználó tevékenykedhet;
  • table: azt az adatbázis táblát jelöli, amiben a felhasználó tevékenykedhet;
  • username: annak a felhasználónak a neve, akinek engedélyt ad.

Egy adott felhasználó bizonyos engedélyeinek visszavonásához használja a REVOKE parancsot:

REVOKE permission ON database.table FROM ‘username’ @‘localhost’;

MySQL felhasználó törlése

A DROP USER paranccsal törölheti a felhasználót, hogy ne érhesse el többet a MySQL adatbázist:

DROP USER ‘username’ @‘localhost’;

Annak ellenőrzéséhez, hogy a felhasználónak nincsenek-e már engedélyei a bejelentkezéshez, tesztelje a kapcsolatot a MySQL-hez a következő paranccsal:

mysql -u ‘username’ -p

Ahol a „felhasználónév” pontosan a korábban törölt felhasználó neve.

MySQL user access

Összegzés

Ebben az oktatóanyagban a MySQL telepítésének leírása után bemutattuk, hogyan lehet létrehozni és törölni MySQL felhasználókat, akik különböző olvasási és írási jogosultságokkal férhetnek hozzá az adatbázisokhoz és táblákhoz.

Ne feledje, hogy ha nincs biztonsági másolata, az adatbázisokban végrehajtott bármilyen változás visszafordíthatatlan. Tehát nagyon figyeljen a megadott engedélyek típusaira, és a grant és revoke parancsokon keresztüli hozzáférés biztosítására az összes felhasználó számára.