Partilhar via


Privilégios de leitura e leitura/escrita com utilizadores nativos secundários no Azure DocumentDB

O Azure DocumentDB suporta utilizadores nativos secundários do DocumentDB com funções especializadas de leitura-escrita e só leitura, permitindo a delegação segura de acesso aos dados. A conta administrativa incorporada, criada durante o provisionamento do cluster, tem privilégios completos, incluindo gestão de utilizadores. Os utilizadores secundários são automaticamente replicados para réplicas do cluster, mas a gestão de utilizadores deve ser realizada no cluster principal.

Pré-requisitos

  • Uma assinatura do Azure

    • Se você não tiver uma assinatura do Azure, crie uma conta gratuita
  • Um cluster do Azure DocumentDB existente

Papéis nativos

O Azure DocumentDB suporta controlo de acesso nativo baseado em funções para utilizadores secundários com as seguintes funções:

Description
readWriteAnyDatabase Permissões completas de leitura e escrita, incluindo gestão de bases de dados
clusterAdmin Permissões completas de leitura e escrita, incluindo gestão de bases de dados
readAnyDatabase Permissões apenas de leitura

Gerir utilizadores e funções usando drivers ou ferramentas do MongoDB como o MongoDB Shell (mongosh).

Observação

Apenas são suportados utilizadores completos de leitura-escrita com privilégios tanto de gestão de base de dados como de operações. Os papéis não podem ser atribuídos separadamente.

Autenticar e realizar operações via MongoDB Shell

Autenticar usando a conta administrativa incorporada criada durante o provisionamento do cluster. Esta conta tem privilégios exclusivos de gestão de utilizadores (userAdmin) no cluster.

  1. Abrir um terminal num cliente com o shell MongoDB instalado.

  2. Obtenha o nome do seu cluster Azure DocumentDB e as suas credenciais atuais.

    Sugestão

    Podes obter a string de ligação nativa para o cluster no portal Azure usando a secção Connection strings .

  3. Conecte-se usando a seguinte cadeia de conexão:

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

Gerenciar usuários

Cria um novo usuário no cluster onde você executa o comando. O createUser comando retorna um erro de usuário duplicado se o usuário já existir.

  1. Crie um utilizador administrativo do plano de dados.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"clusterAdmin",db:"admin" },
          { role:"readWriteAnyDatabase", db:"admin" }
        ]
      }
    )
    
  2. Crie um utilizador só de leitura.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"readAnyDatabase",db:"admin" }
        ]
      }
    )
    
  3. Atualize um utilizador na base de dados executando o updateUser comando.

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

    Observação

    O comando suporta apenas a atualização da palavra-passe.

  4. Remover um utilizador do cluster.

    use admin
    
    db.runCommand(
      {
        dropUser:"<username>"
      }
    )
    
  5. Recolha detalhes sobre todos os utilizadores nativos do cluster ou especifique um único utilizador para obter informações sobre os seus papéis e outros atributos.

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