Condividi tramite


Privilegi di lettura e lettura/scrittura con utenti nativi secondari su Azure DocumentDB

Azure DocumentDB supporta gli utenti di DocumentDB nativi secondari con ruoli specializzati di lettura/scrittura e di sola lettura, consentendo la delega sicura dell'accesso ai dati. L'account amministrativo predefinito, creato durante il provisioning del cluster, dispone di privilegi completi, inclusa la gestione degli utenti. Gli utenti secondari vengono replicati automaticamente nelle repliche cluster, ma la gestione degli utenti deve essere eseguita nel cluster primario.

Prerequisiti

  • Una sottoscrizione di Azure

  • Un cluster Di Azure DocumentDB esistente

Ruoli nativi

Azure DocumentDB supporta il controllo degli accessi in base al ruolo nativo per gli utenti secondari con i ruoli seguenti:

Description
readWriteAnyDatabase Autorizzazioni di lettura/scrittura complete, inclusa la gestione del database
clusterAdmin Autorizzazioni di lettura/scrittura complete, inclusa la gestione del database
readAnyDatabase Autorizzazioni di sola lettura

Gestire utenti e ruoli usando i driver MongoDB o strumenti come MongoDB Shell (mongosh).

Annotazioni

Sono supportati solo gli utenti con accesso completo in lettura e scrittura con privilegi di gestione del database e privilegi operativi. I ruoli non possono essere assegnati separatamente.

Autenticare ed eseguire operazioni tramite MongoDB Shell

Eseguire l'autenticazione usando l'account amministrativo predefinito creato durante il provisioning del cluster. Questo account dispone di privilegi esclusivi di gestione degli utenti (userAdmin) nel cluster.

  1. Aprire un terminale in un client con la shell MongoDB installata.

  2. Ottenere il nome del cluster Azure DocumentDB e le credenziali correnti.

    Suggerimento

    È possibile ottenere la stringa di connessione nativa per il cluster nel portale di Azure usando la sezione Stringhe di connessione .

  3. Connettersi usando la stringa di connessione seguente:

    mongosh "mongodb+srv://<username>:<password>@<cluster-name>?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    

Gestisci utenti

Crea un nuovo utente nel cluster in cui si esegue il comando . Se l'utente esiste già, il comando restituisce un errore di duplicazione utente.

  1. Creare un utente amministratore del data plane.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"clusterAdmin",db:"admin" },
          { role:"readWriteAnyDatabase", db:"admin" }
        ]
      }
    )
    
  2. Creare un utente di sola lettura.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"readAnyDatabase",db:"admin" }
        ]
      }
    )
    
  3. Aggiornare un utente nel database eseguendo il updateUser comando .

    use admin
    
    db.runCommand(
      {
        updateUser:"<username>",
        pwd : "<new cleartext password>"
      }
    )
    

    Annotazioni

    Il comando supporta solo l'aggiornamento della password.

  4. Rimuovere un utente dal cluster.

    use admin
    
    db.runCommand(
      {
        dropUser:"<username>"
      }
    )
    
  5. Recuperare i dettagli su tutti gli utenti nativi nel cluster o specificare un singolo utente per ottenere informazioni sui ruoli e sugli altri attributi.

    use admin
    
    db.runCommand(
      {
        usersInfo:1
      }
    )