Compartilhar via


Privilégios de leitura e de leitura/gravação para usuários nativos secundários no Azure DocumentDB

O Azure DocumentDB dá suporte aos usuários nativos secundários do DocumentDB com funções especializadas de leitura-gravação e somente leitura, permitindo a delegação segura de acesso a dados. A conta administrativa interna, criada durante o provisionamento de cluster, tem privilégios completos, incluindo o gerenciamento de usuários. Os usuários secundários são automaticamente replicados em réplicas de cluster, mas o gerenciamento de usuários deve ser executado no cluster primário.

Pré-requisitos

  • Uma assinatura do Azure

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

Funções nativas

O Azure DocumentDB dá suporte ao controle de acesso baseado em função nativo para usuários secundários com as seguintes funções:

Description
readWriteAnyDatabase Permissões completas de leitura e gravação, incluindo o gerenciamento de banco de dados
clusterAdmin Permissões completas de leitura e gravação, incluindo o gerenciamento de banco de dados
readAnyDatabase Permissões somente leitura

Gerenciar usuários e funções usando drivers do MongoDB ou ferramentas como o Shell do MongoDB (mongosh).

Observação

Há suporte apenas para usuários completos de leitura e gravação com privilégios de gerenciamento de banco de dados e operações. As funções não podem ser atribuídas separadamente.

Autenticar e executar operações por meio do Shell do MongoDB

Autenticar usando a conta administrativa incorporada criada durante o provisionamento do cluster. Essa conta tem privilégios exclusivos de gerenciamento de usuário (userAdmin) no cluster.

  1. Abra um terminal em um cliente com o shell do MongoDB instalado.

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

    Dica

    Você pode obter a cadeia de conexão nativa para o cluster no portal do Azure usando a seção Cadeias de conexão .

  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 em que você executa o comando. O createUser comando retornará um erro de usuário duplicado se o usuário já existir.

  1. Crie um usuário administrativo do plano de dados.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"clusterAdmin",db:"admin" },
          { role:"readWriteAnyDatabase", db:"admin" }
        ]
      }
    )
    
  2. Crie um usuário somente leitura.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"readAnyDatabase",db:"admin" }
        ]
      }
    )
    
  3. Atualize um usuário no banco de dados executando o updateUser comando.

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

    Observação

    O comando dá suporte apenas à atualização da senha.

  4. Remova um usuário do cluster.

    use admin
    
    db.runCommand(
      {
        dropUser:"<username>"
      }
    )
    
  5. Recupere detalhes sobre todos os usuários nativos no cluster ou especifique um único usuário para obter informações sobre suas funções e outros atributos.

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