# Kuidas luua kasutajaid MySQLis

Uue kasutaja loomiseks MySQLis peate omama piisavaid administraatoriõigusi või superkasutaja õigusi, mis võimaldavad teil lisaks vastavale andmebaasile juurdepääsule luua kasutajakontosid ja hallata volitusi. Samuti peate teadma, millist juurdepääsu uus kasutaja vajab, kas see on lugemisõigus, kirjutusõigus või isegi administraatoriõigus.

## Kuidas kasutada MySQLi `CREATE USER` käsku

Andmebaasi haldussüsteemi installimisel loob MySQL automaatselt **root-konto**. See konto annab teile täieliku kontrolli oma andmebaaside, tabelite ja kasutajate üle, võimaldades tõhusat haldamist. Kui vajate abi installimisprotsessiga, leiate meie MySQL-õpetusest kogu vajaliku teabe.

Oma root-kontoga saate luua täiendavaid kasutajakontosid või uusi MySQL-kasutajaid ja määrata neile volitused. Ubuntu süsteemides, kus on MySQL 5.7 või uuem versioon, on MySQL root-kasutaja vaikimisi konfigureeritud end autentima `auth_socket` pluginaga, mitte parooliga. See tähendab, et kui MySQL-klienti käivitava süsteemi kasutaja nimi erineb käsus määratud MySQL-kasutaja nimest, peate käsule lisama eesliite `sudo`, et saada juurkasutaja kontosse juurdepääs:

```bash
$ sudo mysql
```

Uue kasutaja loomiseks MySQLis kasutage käsku `CREATE USER`. See võimaldab teil luua kasutaja kindla kasutajanime ja parooliga:

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

Asenda `username` oma valitud kasutajanimega. Sisesta `host` alla selle hosti nimi, kust uus kasutaja saab ühendust luua. Kui kasutaja peaks saama andmebaasile juurde pääseda ainult sinu kohalikust Ubuntu serverist, võid sisestada `localhost`.

**Autentimise pistikprogrammi** valimisel on teil mitu võimalust. Pistikprogramm `auth_socket` pakub kõrget turvalisust, nõudes kasutajatelt parooli sisestamist andmebaasile juurdepääsuks. Siiski piirab see kaugühendusi, mis võib nõuda välistelt programmidelt rohkem pingutusi MySQLiga suhtlemiseks. Alternatiivina võite jätta käsu osa `WITH authentication_plugin` välja, et autentida kasutajaid MySQLi standardpistikprogrammi `caching_sha2_password` abil. Siis näeks käsk välja järgmine:

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

Kui olete loonud uue kasutaja, peate talle määrama volitused.

## Kuidas määrata õigusi kasutajatele MySQLis

Kasutajaõiguste loomine ja haldamine on MySQL-is andmete turvalisuse tagamiseks hädavajalik. Kasutajaõiguste määramise üldine käsk on:

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

Väärtus `PRIVILEGE` määrab, milliseid toiminguid kasutaja saab teha määratud andmebaasis ja tabelis. Selle väärtuse saab asendada muu hulgas järgmiste käskudega:

- `CREATE`: Võimaldab kasutajatel luua andmebaasi või tabeli
- `SELECT`: Võimaldab kasutajatel andmeid otsida
- `INSERT`: võimaldab kasutajatel lisada tabelitesse uusi kirjeid
- `UPDATE`: võimaldab kasutajatel muuta tabelites olevaid kirjeid
- `DELETE`: võimaldab kasutajatel kustutada tabelite kirjeid
- `DROP`: võimaldab kasutajatel kustutada terveid andmebaasi tabeleid

Võite uuele kasutajale anda ka mitu õigust korraga. Sel juhul tuleb õigused eraldada komaga:

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

**Kõigi andmebaaside või tabelite jaoks** võib**volitused** anda ka üheainsa käsuga, sisestades `*` asemel üksikute andmebaaside ja tabelite nimed. Näiteks järgmine käsk annab kasutajale volituse küsida andmeid (`SELECT`), lisada uusi kirjeid (`INSERT`) ja muuta olemasolevaid kirjeid (`UPDATE`) kõigis andmebaasides ja tabelites.

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

Kui olete MySQLis `CREATE USER` või `GRANT` käsku täitnud, saate `FLUSH PRIVILEGES` käskuga andmebaasi uuendada. See laadib autoriseerimistabelid uuesti, tagades uute autoriseeringute jõustumise:

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

Siiski on oluline anda kasutajatele ainult neile vajalikud volitused. Kui annate kasutajale täieliku kontrolli, võib see kujutada endast **suurt turvariski**.

## Kuidas tühistada kasutajate õigused MySQLis

Käsk `REVOKE` kasutatakse kasutajaõiguste eemaldamiseks MySQL-is. Süntaaks on sarnane käsuga `GRANT`. Siiski peate selle käsuga kasutama `FROM` asemel `TO`:

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

Kasutaja praeguste volituste kuvamiseks võite kasutada käsku `SHOW GRANTS`:

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

Kasutaja saate kustutada käsuga `DROP`:

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

Kasutajate, eriti administraatoriõigustega kasutajate kustutamisel tuleb olla äärmiselt ettevaatlik. Veenduge, et kustutate ainult need kasutajad, keda tõesti soovite kustutada, et vältida soovimatut andmete kaotust.

Kui olete lõpetanud uute MySQL-kasutajate loomise ja neile õiguste andmise, võite MySQL-kliendist väljuda:

```bash
mysql> exit
```


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/mysql-kasutaja-loomine/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/mysql-kasutaja-loomine/) for AI/LLM consumption.