# CREATE USER in MariaDB: come creare un nuovo utente

Il comando `CREATE USER` consente di creare nuovi utenti in MariaDB. Per eseguire questa operazione hai bisogno di permessi da admin. Per assegnare a un account i relativi permessi si usa il comando `GRANT`.

## `CREATE USER` in MariaDB: i singoli passaggi

In MariaDB, il comando `CREATE USER` si usa per creare un nuovo utente. Di seguito, ti illustriamo quali passaggi seguire.

### Primo passaggio: connettersi a MariaDB

Il nuovo utente viene creato direttamente in MariaDB. Per stabilire una connessione, è sufficiente aprire la riga di comando di MariaDB e accedere con il proprio nome utente e password. A tal proposito è importante che l’account utilizzato disponga di permessi da amministratore.

### Secondo passaggio: usare `CREATE USER`

Per creare un nuovo utente in MariaDB, usa il comando `CREATE USER`. La sintassi è la seguente:

```sql
CREATE USER nomeutente@nomehost IDENTIFIED BY 'password';
```

Sostituisci “nomeutente” con il nome utente desiderato, assicurandoti di assegnargli un nome univoco. Sostituisci “nomehost” con il nome dell’host o l’indirizzo IP del server. Infine, specifica una password sicura per questo account.

### Terzo passaggio: assegnare i permessi utente

Il passaggio successivo consiste nell’assegnare al nuovo utente i permessi necessari. Questi stabiliscono ciò che un utente può fare all’interno del sistema. Più in basso spieghiamo nel dettaglio quali sono i diversi permessi utente. Per assegnare i permessi si utilizza l’istruzione `GRANT`. La sintassi è la seguente:

```sql
GRANT permessiutente ON bancadati.tabella TO nomeutente@nomehost;
```

Dopo aver usato il comando `GRANT`, specifichi i permessi che l’account deve ricevere, separandoli con delle virgole. Ad esempio, “bancadati.tabella” può riferirsi a un database specifico o a tabelle singole oppure può essere applicato all’intero sistema usando `*.*`. Sostituisci “nomeutente@nomehost” con il nome utente e l’host del nuovo account.

### Quarto passaggio: applicare i permessi utente

Dopo aver assegnato i permessi utente, usa il comando `FLUSH PRIVILEGES` per applicarli. Questo è il relativo comando:

```sql
FLUSH PRIVILEGES;
```

### Quinto passaggio: eseguire il login

Ora il nuovo utente può accedere al server MariaDB. Per farlo, deve digitare il nome utente e la relativa password. Ora dispone dei permessi utente che gli sono stati assegnati. Per eliminare un account, se disponi dei permessi di admin, puoi utilizzare il comando `DROP USER`.

## Lista dei permessi utente

I permessi utente, noti anche come “privileges” in inglese, determinano quali azioni può eseguire un account MariaDB. Mentre l’utente admin dispone di tutti i permessi, è consigliabile limitare le autorizzazioni assegnate agli altri account per evitare potenziali problemi di sicurezza. Questi i permessi utente più comuni:

- `ALL`: fornisce all’account tutti i permessi tranne `GRANT OPTION`.
- `GRANT OPTION`: fornisce all’account tutti i permessi del proprio account.
- `SELECT`: consente all’utente di accedere ai database o alle tabelle.
- `INSERT`: consente all’utente di aggiungere nuove righe all’interno di una tabella.
- `UPDATE`: consente all’utente di aggiornare le righe.
- `DELETE`: consente all’utente di cancellare le righe.
- `CREATE`: consente all’utente di creare nuove tabelle o database.
- `ALTER`: consente all’utente di modificare la struttura di una tabella.
- `DROP`: consente di cancellare tabelle o database.

Se in un secondo momento desideri modificare i permessi utente, usa l’istruzione `REVOKE`. Per ottenere una panoramica dei permessi assegnati, usa il comando `SHOW GRANTS FOR`.

## `OR REPLACE` e `IF NOT EXISTS`

Quando cerchi di creare un nuovo account in MariaDB con il comando `CREATE USER`, se esiste già un utente con lo stesso nome il sistema visualizza un messaggio di errore. Per poter aggirare questo problema, il sistema di gestione dei database offre due opzioni: `OR REPLACE` e `IF NOT EXISTS`.

La sintassi di `OR REPLACE` è la seguente:

```sql
CREATE OR REPLACE USER nomeutente@nomehost IDENTIFIED BY 'password';
```

Lo snippet qui sopra è una forma abbreviata del seguente codice:

```sql
DROP USER IF EXISTS nomeutente@nomehost;
CREATE USER nomeutente@nomehost IDENTIFIED BY 'password';
```

Il sistema verifica se esiste già un utente con il nome corrispondente. In caso affermativo, il **vecchio account viene sostituito da quello nuovo**. Se invece non esiste alcun utente con quel nome, ne viene creato uno nuovo.

La sintassi di `IF NOT EXISTS` è la seguente:

```sql
CREATE USER IF NOT EXISTS nomeutente@nomehost IDENTIFIED BY 'password';
```

Anche in questo caso, il sistema verifica se esiste già un account con lo stesso nome. Qualora l’account esista già, verrà visualizzato un avviso e **nessun account verrà sovrascritto**. Se invece l’account non esiste, verrà creato un nuovo utente.

Consiglio Nella nostra Digital Guide puoi scoprire di più su questo sistema open source di gestione dei database. Ad esempio, puoi leggere come funzionano i comandi [MariaDB CREATE DATABASE](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-create-database/) e [MariaDB CREATE TABLE](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-create-table/), quali sono le [differenze e gli aspetti in comune fra MariaDB e MySQL](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-vs-mysql/) e come eseguire l’[installazione di MariaDB](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/come-installare-mysql-o-mariadb/).


This is a markdown version of: [https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-create-user/](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-create-user/) for AI/LLM consumption.