# Kaip kurti vartotojus MySQL

Norėdami sukurti naują vartotoją MySQL, turite turėti pakankamas administratoriaus teises arba supervartotojo privilegijas, kurios leidžia kurti vartotojų paskyras ir valdyti leidimus, be to, turite turėti prieigą prie atitinkamos duomenų bazės. Taip pat turite žinoti, kokios prieigos reikia naujam vartotojui: skaitymo teisių, rašymo teisių ar net administratoriaus teisių.

## Kaip naudoti MySQL `CREATE USER` komandą

Įdiegus duomenų bazių valdymo sistemą, MySQL automatiškai sukuria **root paskyrą**. Ši paskyra suteikia jums visapusišką kontrolę savo duomenų bazėmis, lentelėmis ir vartotojais, leidžiant efektyviai jas administruoti. Jei jums reikalinga pagalba įdiegimo procese, mūsų MySQL pamoka turi visą būtiną informaciją.

Naudodami savo root paskyrą, galite sukurti papildomas vartotojų paskyras arba naujus MySQL vartotojus ir jiems priskirti leidimus. Ubuntu sistemose su MySQL 5.7 ar naujesnėmis versijomis MySQL root vartotojas pagal numatytuosius nustatymus yra konfigūruotas autentiškumui patvirtinti naudoti `auth_socket` įskiepį, o ne slaptažodį. Tai reiškia, kad jei sistemos vartotojo, kuris iššaukia MySQL klientą, vardas skiriasi nuo komandoje nurodyto MySQL vartotojo vardo, norėdami gauti prieigą prie savo root paskyros, komandą turėsite pradėti `sudo`:

```bash
$ sudo mysql
```

Norėdami sukurti naują vartotoją MySQL, naudokite komandą `CREATE USER`. Tai leidžia sukurti vartotoją su konkrečiu vartotojo vardu ir slaptažodžiu:

```bash
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
```

Pakeiskite `username` savo pasirinktu vartotojo vardu. `host` įrašykite kompiuterio, iš kurio naujas vartotojas galės prisijungti, pavadinimą. Jei vartotojas turės prieigą prie duomenų bazės tik iš jūsų vietinio Ubuntu serverio, galite įrašyti `localhost`.

Renkantis **autentiškumo patvirtinimo įskiepį**, turite keletą galimybių. Įskiepis `auth_socket` užtikrina aukštą saugumą, reikalaujant iš vartotojų įvesti slaptažodį, kad galėtų prisijungti prie duomenų bazės. Tačiau jis riboja nuotolinius prisijungimus, todėl išorinėms programoms gali prireikti daugiau pastangų, kad galėtų sąveikauti su MySQL. Alternatyviai, galite praleisti komandos dalį `WITH authentication_plugin`, kad autentiškumą patvirtintumėte naudodami standartinį MySQL įskiepį `caching_sha2_password`. Komanda atrodytų taip:

```bash
mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
```

Sukūrę naują vartotoją, turite jam priskirti leidimus.

## Kaip priskirti teises vartotojams MySQL

Vartotojų teisių kūrimas ir valdymas yra būtinas duomenų saugumo MySQL palaikymui. Bendrasis komandos, skirtos vartotojų teisių priskyrimui, yra:

```bash
mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
```

Vertė `PRIVILEGE` nustato, kokius veiksmus vartotojas gali atlikti nurodytoje duomenų bazėje ir lentelėje. Šią vertę galite pakeisti, be kita ko, šiais komandomis:

- `CREATE`: Leidžia vartotojams kurti duomenų bazę arba lentelę
- `SELECT`: Leidžia vartotojams gauti duomenis
- `INSERT`: Leidžia vartotojams pridėti naujus įrašus į lenteles
- `UPDATE`: Leidžia vartotojams keisti esamus įrašus lentelėse
- `DELETE`: Leidžia vartotojams ištrinti lentelių įrašus
- `DROP`: Leidžia vartotojams ištrinti visas duomenų bazės lenteles

Taip pat galite naujiems vartotojams suteikti keletą teisių iš karto. Tokiu atveju teises reikia atskirti kableliais:

```bash
mysql> GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'host';
```

**Leidimai naudotis visomis duomenų bazėmis ar lentelėmis** taip pat gali būti suteikiami vienu komandomis, įvedant `*` vietoj atskirų duomenų bazių ir lentelių pavadinimų. Pavyzdžiui, šis komandos suteikia vartotojui leidimą ieškoti duomenų (`SELECT`), pridėti naujus įrašus (`INSERT`) ir keisti esamus įrašus (`UPDATE`) visose duomenų bazėse ir lentelėse.

```bash
mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO 'username'@'host';
```

Kai MySQL vykdysite `CREATE USER` arba `GRANT` komandas, galėsite naudoti `FLUSH PRIVILEGES` komandą, kad atnaujintumėte duomenų bazę. Tai perkraus autorizacijos lenteles, užtikrinant, kad naujos autorizacijos bus įsigaliojusios:

```bash
mysql> FLUSH PRIVILEGES;
```

Tačiau svarbu suteikti vartotojams tik tuos įgaliojimus, kurių jiems reikia. Jei vartotojui suteikiate visišką kontrolę, tai gali kelti **didelį saugumo pavojų**.

## Kaip atšaukti vartotojų teises MySQL

Komanda `REVOKE` naudojama vartotojo teisių pašalinimui MySQL. Sintaksė yra panaši į komandos `GRANT` sintaksę. Tačiau su šia komanda reikia naudoti `FROM` vietoj `TO`:

```bash
mysql> REVOKE type_of_permission ON database_name.table_name FROM 'username'@'host';
```

Norėdami peržiūrėti dabartinius vartotojo leidimus, galite naudoti komandą `SHOW GRANTS`:

```bash
mysql> SHOW GRANTS FOR 'username'@'host';
```

Naudodami komandą `DROP` galite ištrinti vartotoją:

```bash
mysql> DROP USER 'username'@'localhost';
```

Naudotojus, ypač turinčius administratoriaus teises, trinti reikia labai atsargiai. Kad išvengtumėte netyčinio duomenų praradimo, įsitikinkite, kad trinate tik tuos naudotojus, kuriuos tikrai norite ištrinti.

Kai baigsite kurti naujus MySQL vartotojus ir suteikti jiems teises, galite uždaryti MySQL klientą:

```bash
mysql> exit
```


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/mysql-create-user/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/mysql-create-user/) for AI/LLM consumption.