Con la funzione di MongoDB Create User potete ag­giun­ge­re nuovi utenti a un database e assegnare loro dei ruoli. Questo metodo funziona anche per profili con permessi da am­mi­ni­stra­to­re. Se invece de­si­de­ra­te can­cel­la­re un utente dovete usare il comando di MongoDB Drop User.

Che cos’è Create User in MongoDB?

Il database NoSQL MongoDB non co­sti­tui­sce solamente una buona soluzione per l’ar­chi­via­zio­ne e la gestione dei vostri dati. Infatti, il sistema di gestione di base di dati risulta adatto anche al lavoro condiviso di team di piccole e grandi di­men­sio­ni. Create au­to­no­ma­men­te nuovi utenti e assegnate loro specifici permessi per poter tenere sempre sotto controllo chi ha accesso ai vostri dati. Il comando cor­ri­spon­den­te tra i comandi di MongoDB si chiama Create User. Oltre a poter ag­giun­ge­re nuovi utenti vi consente anche di assegnare loro uno o più ruoli. Inoltre, potete impostare anche una password.

La sintassi di Create User in MongoDB

La sintassi di base del comando di MongoDB Create User si presenta così:

db.createUser (user, writeConcern)

Oltre all’effettivo comando crea­teU­ser trovate anche altre due in­for­ma­zio­ni: “user” è ob­bli­ga­to­rio e indica il documento con­te­nen­te l’au­ten­ti­ca­zio­ne del nuovo utente e tutte le altre in­for­ma­zio­ni generali; “wri­te­Con­cern”, invece, è opzionale e serve a indicare il livello di au­to­riz­za­zio­ne.

L’utente e i suoi parametri

Il documento “user” in MongoDB va sempre inserito con il comando “Create User” e contiene diversi parametri im­por­tan­ti:

  • user: questa stringa contiene il nome del nuovo utente ed è opzionale.
  • pwd: con “pwd” in Create User stabilite una password per la nuova persona. Questa in­for­ma­zio­ne è sempre richiesta, tranne quando uti­liz­za­te il comando su un database esterno.
  • cu­sto­m­Da­ta: questo documento è opzionale e può contenere tutte le in­for­ma­zio­ni ag­giun­ti­ve de­si­de­ra­te che ri­guar­da­no un utente. Ad esempio, al suo interno potete indicare il vero nome e cognome dell’utente.
  • roles: qui assegnate a un utente dei ruoli pre­de­fi­ni­ti o per­so­na­liz­za­ti. Le in­for­ma­zio­ni vengono generate in un array. Lasciando questo campo vuoto, all’utente non viene assegnato alcun ruolo.

Il documento “user” appare così:

{
user: "<nomeutente>",</nomeutente>
pwd: "<password>",</password>
customData: { <nomereale, id=""> },</nomereale,>
roles: [ { role: "<ruolo>", db: "<database>" } ]</database></ruolo>
}

Se usando Create User in MongoDB provate a riu­ti­liz­za­re un nome utente già esistente, ri­ce­ve­re­te un messaggio di errore. In questo modo viene impedita la creazione di doppioni. Per vi­sua­liz­za­re tutti gli utenti di un database in MongoDB uti­liz­za­te Show Users oppure db.getUsers ().

Assegnare ruoli con Create User in MongoDB

Di norma è con­si­glia­bi­le assegnare dif­fe­ren­ti ruoli agli utenti sin dall’inizio. In questo modo potrete lavorare in team in maniera più ef­fi­cien­te e, allo stesso tempo, pro­teg­ge­te i dati sensibili da accessi in­de­si­de­ra­ti. Se de­si­de­ra­te assegnare dei ruoli, potete farlo creando il nome del ruolo all’interno del medesimo database. In al­ter­na­ti­va, potete creare un documento che definisce i ruoli che uti­liz­za­te già in un altro database. Per assegnare a un utente più ruoli con Create User in MongoDB il comando è il seguente:

use esempio
db.createUser(
{
user: "username",
pwd: "password",
roles: [ "read", "dbAdmin" ]
}
);

In questo esempio abbiamo assegnato al nuovo utente i ruoli “read” e “dbAdmin”.

Create User in MongoDB senza assegnare ruoli

Potete anche non assegnare alcun ruolo a un utente. Cio­no­no­stan­te, con Create User dovete spe­ci­fi­car­lo chia­ra­men­te. In questo caso il comando è il seguente:

use esempio
db.createUser(
{
user: "username",
pwd: "password",
roles: [ ]
}
);

Lasciando vuoto lo spazio tra le parentesi, all’utente non viene assegnato alcun ruolo.

Create User in MongoDB per gli am­mi­ni­stra­to­ri

Il comando di MongoDB Create User vi consente anche di creare degli utenti con mansioni am­mi­ni­stra­ti­ve. Questi utenti ottengono anche accesso alla con­fi­gu­ra­zio­ne del vostro database. Il pro­ce­di­men­to as­so­mi­glia al codice già noto:

use admin
db.createUser(
{
user: "secondo_amministratore",
pwd: "password_amministratore",
roles: [ { role: "readWrite", db: "config" },
"clusterAdmin"
]
}
);

Eliminare un utente con Drop User in MongoDB

In qualsiasi momento avete anche la facoltà di eliminare un utente. Il comando ne­ces­sa­rio si chiama Drop User e il modo in cui viene costruito as­so­mi­glia a quello di Create User. La sintassi da usare è la seguente:

db.dropUser (username, writeConcern)

Di fatto dovete soltanto indicare il nome dell’utente:

use esempio
db.dropUser ("username")

Prima di can­cel­la­re un utente con permessi da am­mi­ni­stra­to­re, dovreste in­nan­zi­tut­to as­si­cu­rar­vi che vi sia almeno un’altra figura in possesso delle au­to­riz­za­zio­ni ne­ces­sa­rie.

Consiglio

De­si­de­ra­te saperne di più sull’impiego del sistema di gestione di base di dati MongoDB? Allora vi con­si­glia­mo di leggere gli altri articoli della Digital Guide su questo argomento:
- MongoDB Create Col­lec­tion
- MongoDB Create Database
- MongoDB Create Index

Vai al menu prin­ci­pa­le