MySQL új felhasználó és adatbázis létrehozása
Új adatbázis létrehozása fejlesztői gépen
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
Új felhasználó létrehozása
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
Jogosultság hozzáadása
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost';
FLUSH PRIVILEGES;
Új tábla létrehozása:
CREATE TABLE pelda (id int, txt text) DEFAULT CHARACTER SET utf8 COLLATE utf8_hungarian_ci
Ha egy-két egyszerű SQL paranccsal szeretnénk egy új adatbázist
(és hozzá tartozó felhasználót) létrehozni, az alábbi SQL parancsok
lesznek a segítségünkre. Először magát az adatbázist kell létrehoznunk,
mivel a felhasználónál erre már hivatkozni fogunk:
1
| CREATE DATABASE IF NOT EXISTS `peldadb`;
|
Természetesen a
peldadb helyére a létrehozandó adatbázis
nevét kell írni. Fenti parancs azonban csak akkor működik, ha ilyen nevű
adatbázis még nem létezik. Létező adatbázist az alábbi paranccsal
törölhetünk:
1
| DROP TABLE IF EXISTS `peldadb`;
|
Mindkét esetben szerepel a parancsokban egy feltétel is (exists / not
exists), melynek köszönhetően az adatbázis törlését/létrehozását csak
abban az esetben kísérli meg a MySQL, ha az létezik / nem létezik. Ezzel
kiküszöbölhető, hogy a szkript futása hibával megálljon. Például, ha
nem tudjuk, hogy az adott nevű adatbázisból létezik-e már egy korábbi
verzió, a feltételes törléssel megpróbálhatjuk eltávolítani a korábbit,
mielőtt az új létrehozásával próbálkoznánk. Ha ez a példa kedvéért
jogosultság hiányában nem történik meg, a létrehozó parancs még mindig
nem fog hibára futni, mivel létező adatbázis esetén nem kísérel meg
azonos néven még egyet létrehozni.
Ha az adatbázisunk elkészült, szükségünk lesz egy MySQL felhasználóra
is, aki az új adatbázist elérheti, kezelheti. Ennek legegyszerűbb módja
az alábbi:
1
| GRANT ALL ON peldadb.* TO 'felhasznalonev'@'localhost' IDENTIFIED BY 'jelszo';
|
Fenti parancsban a
peldadb és
jelszo az új
felhasználó nevére és jelszavára cserélendő. Megjegyzendő, hogy az
adatbázis nevénél nincs szükség aposztrófra, míg a felhasználónév, a
hosztnév és a jelszó esetében igen. A
localhost azon gép neve
vagy IP címe, ahonnan az elérést az adott MySQL felhasználó számára
engedélyezzük. A példában is szereplő érték esetén a hozzáférés csak
akkor érvényes, ha a felhasználó a MySQL adatbázissal azonos gépen
próbál kapcsolódni a kiszolgálóhoz. Webtárhely kiszolgálóknál jellemzően
ez a helyzet. Ha nem szeretnénk korlátozni a hozzáférést ilyen módon,
hosztnévnek a % jelet kell megadni. A külső támadások elkerülése végett
azonban ezt csak indokolt esetben használjuk, lustaságból soha!
Az adatbázis neve mögötti . után szereplő * jelentése: az adatbázis
összes táblája. Ez nem csak a már létező, de a később létrehozandó
táblákhoz is hozzáférést biztosít a felhasználó számára. Fentiek alapján
egy példa, ha egy helyi hálózaton lévő gép számára csak a
logs táblát szeretnénk elérhetővé tenni:
1
| GRANT ALL ON peldadb.logs TO 'felhasznalonev'@'192.168.1.100' IDENTIFIED BY 'jelszo';
https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_grant-option
http://sql.misi.eu/inner/
http://www.sze.hu/~szorenyi/sz03/htm/doc/INNJOIN.htm
http://softwareonline.animare.hu/cikk.aspx?id=3766
https://stackoverflow.com/questions/8696383/difference-between-natural-join-and-inner-join
https://it-sziget.hu/triggerek-hasznalata-mysql-ben
|
Nincsenek megjegyzések:
Megjegyzés küldése
Na írjad ;)