MongoDB fornisce un meccanismo di sicurezza per controllare l’accesso ai dati, chiamato Autenticazione e Autorizzazione:
Autenticazione: verifica l’identità degli utenti. In altre parole, autenticazione significa confermare che l’utente è chi dice di essere.
Autorizzazione: controlla il accesso ai dati degli utenti autenticati. In altre parole, l’autorizzazione determina che cosa può fare un utente autenticato.
Per gestire gli utenti e i ruoli in MongoDB, seguire i passaggi seguenti:
Creazione di un Utente
In MongoDB, gli utenti sono creati all’interno di un database specifico e i loro ruoli sono assegnati in base al database in cui risiedono. Puoi creare un utente utilizzando il comando `db.createUser()`.
Esempio:
```
db.createUser(
{
user: “mario”,
pwd: “passwordsegreta”,
roles: [ “readWrite”, “dbAdmin” ]
}
)
```
Modifica di un Utente
Per modificare un utente, ad esempio cambiare la password o assegnare un nuovo ruolo, puoi usare il comando `db.updateUser()`.
Esempio:
```
db.updateUser(
“mario”,
{
pwd: “nuovapassword”,
roles:[“read”]
}
)
```
Eliminazione di un Utente
Per eliminare un utente, utilizzare il comando `db.dropUser()`.
Esempio:
```
db.dropUser(“mario”)
```
Gestione dei Ruoli
I ruoli controllano il livello di accesso che riceve un utente. MongoDB include una serie di ruoli predefiniti che possono essere utilizzati ma è anche possibile creare ruoli personalizzati.
Creazione di un nuovo ruolo:
```
db.createRole(
{
role: “nuovo_ruolo”,
privileges: [
{ resource: { db: “”, collection: “” }, actions: [ “find”, “update”, “insert”, “remove” ] }
],
roles: []
}
)
```
Modifica di un ruolo:
```
db.updateRole(
“nuovo_ruolo”,
{
privileges: [
{ resource: { db: “”, collection: “profili” }, actions: [ “find”, “update” ] }
],
roles: [ “read” ]
}
)
```
Eliminazione di un ruolo:
```
db.dropRole(“nuovo_ruolo”)
```