# Kako ustvariti uporabnike v MySQL

Za ustvarjanje novega uporabnika v MySQL potrebujete zadostne administratorske pravice ali privilegije superuporabnika, ki vam omogočajo ustvarjanje uporabniških računov in upravljanje pooblastil, poleg dostopa do zadevne zbirke podatkov. Prav tako morate vedeti, kakšen dostop potrebuje novi uporabnik, ali gre za pravice branja, pisanja ali celo administratorske pravice.

## Kako uporabljati ukaz MySQL `CREATE USER`

Pri namestitvi sistema za upravljanje podatkovnih baz MySQL samodejno ustvari **root račun**. Ta račun vam omogoča popoln nadzor nad vašimi podatkovnimi bazami, tabelami in uporabniki, kar omogoča učinkovito upravljanje. Če potrebujete pomoč pri namestitvi, naš MySQL tutorial vsebuje vse potrebne informacije.

S svojim korenskim računom lahko ustvarite dodatne uporabniške račune ali nove uporabnike MySQL in jim dodelite pooblastila. Na sistemih Ubuntu z MySQL 5.7 ali novejšimi različicami je uporabnik root MySQL privzeto nastavljen tako, da se avtentificira s pluginom `auth_socket` namesto z geslom. To pomeni, da če se ime sistemskega uporabnika, ki kliče odjemalca MySQL, razlikuje od imena uporabnika MySQL, navedenega v ukazu, morate pred ukazom dodati `sudo`, da pridobite dostop do svojega root računa:

```bash
$ sudo mysql
```

Za ustvarjanje novega uporabnika v MySQL uporabite ukaz `CREATE USER`. To vam omogoča ustvarjanje uporabnika z določenim uporabniškim imenom in geslom:

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

Zamenjajte `username` z imenom uporabnika po vaši izbiri. V polje `host` vnesite ime gostitelja, s katerega se lahko novi uporabnik poveže. Če naj bi imel uporabnik dostop do zbirke podatkov samo z vašega lokalnega strežnika Ubuntu, lahko vnesete `localhost`.

Pri izbiri **vtičnika za avtentifikacijo** imate na voljo več možnosti. Vtičnik `auth_socket` ponuja visoko varnost, saj od uporabnikov zahteva vnos gesla za dostop do baze podatkov. Vendar omejuje oddaljene povezave, kar lahko zahteva več truda za zunanje programe, ki komunicirajo z MySQL. Alternativno lahko izpustite del ukaza `WITH authentication_plugin`, da avtentificirate uporabnike z uporabo standardnega vtičnika MySQL `caching_sha2_password`. Tako bi izgledal ukaz:

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

Ko ustvarite novega uporabnika, mu morate dodeliti pooblastila.

## Kako dodeliti pravice uporabnikom v MySQL

Ustvarjanje in upravljanje uporabniških pravic je bistveno za ohranjanje varnosti podatkov v MySQL. Splošni ukaz za dodeljevanje uporabniških pravic je:

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

Vrednost `PRIVILEGE` določa, katere ukrepe lahko uporabnik izvede v določeni zbirki podatkov in tabeli. To vrednost lahko nadomestite med drugim z naslednjimi ukazi:

- `CREATE`: Omogoča uporabnikom ustvarjanje baze podatkov ali tabele
- `SELECT`: Omogoča uporabnikom, da pridobijo podatke
- `INSERT`: Omogoča uporabnikom dodajanje novih vnosov v tabele
- `UPDATE`: Omogoča uporabnikom spreminjanje obstoječih vnosov v tabelah
- `DELETE`: Omogoča uporabnikom, da izbrišejo vnose v tabelah
- `DROP`: Omogoča uporabnikom, da izbrišejo celotne tabele baze podatkov

Novim uporabnikom lahko dodelite tudi več privilegijev hkrati. Pri tem morate privilegije ločiti z vejico:

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

**Pooblastila za vse baze podatkov ali tabele** je mogoče dodeliti tudi z enim samim ukazom, tako da namesto posameznih imen baz podatkov in tabel vnesete `*`. Na primer, naslednji ukaz uporabniku dodeli pooblastilo za poizvedovanje podatkov (`SELECT`), dodajanje novih vnosov (`INSERT`) in spreminjanje obstoječih vnosov (`UPDATE`) v vseh bazah podatkov in tabelah.

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

Ko izvedete `CREATE USER` ali `GRANT` ukazov v MySQL, lahko uporabite ukaz `FLUSH PRIVILEGES` za posodobitev zbirke podatkov. To ponovno naloži tabele pooblastil in zagotovi, da se nova pooblastila začnejo uporabljati:

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

Vendar je pomembno, da uporabnikom dodelite samo pooblastila, ki jih potrebujejo. Če uporabniku dodelite popoln nadzor, lahko to predstavlja **veliko varnostno tveganje**.

## Kako preklicati uporabniške pravice uporabnikom v MySQL

Ukaz `REVOKE` se uporablja za odstranjevanje uporabniških pravic v MySQL. Sintaksa je podobna sintaksi ukaza `GRANT`. Vendar pa morate pri tem ukazu namesto `TO` uporabiti `FROM`:

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

Za prikaz trenutnih pooblastil, ki jih ima uporabnik, lahko uporabite ukaz `SHOW GRANTS`:

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

Za brisanje uporabnika lahko uporabite ukaz `DROP`:

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

Pri brisanju uporabnikov, zlasti tistih z administrativnimi pravicami, morate biti izredno previdni. Prepričajte se, da odstranite samo tiste uporabnike, ki jih resnično želite izbrisati, da ne pride do nenamerne izgube podatkov.

Ko končate z ustvarjanjem novih uporabnikov MySQL in dodeljevanjem pravic, lahko zaprete odjemalca MySQL:

```bash
mysql> exit
```


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/mysql-ustvarjenje-uporabnika/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/mysql-ustvarjenje-uporabnika/) for AI/LLM consumption.