Partilhar via


Privilégios de leitura e leitura/gravação com usuários secundários no Azure Cosmos DB para MongoDB vCore (visualização)

O Azure Cosmos DB para MongoDB vCore agora oferece suporte a usuários secundários com funções especializadas de leitura/gravação. Esse recurso permite que usuários secundários acessem e modifiquem dados, facilitando a delegação de responsabilidades e, ao mesmo tempo, aprimorando a segurança dos dados. Ao permitir um controle de acesso granular, as equipes podem estender com confiança o acesso aos dados para várias partes interessadas, como desenvolvedores e analistas, sem comprometer a integridade do sistema.

Configurando usuários secundários

Nota

Você pode habilitar/desabilitar esse recurso usando um modelo ARM ou por meio da CLI do Azure durante a fase de visualização.

Utilizar a CLI do Azure

    az resource patch --ids "/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroup}/providers/Microsoft.DocumentDB/mongoClusters/{ClusterName}" --api-version 2024-10-01-preview --properties "{\"previewFeatures\": [\"GeoReplicas\", \"EnableReadOnlyUser\"]}"

Com o modelo do ARM

"previewFeatures": {
            "value": [
                "EnableReadOnlyUser"
            ]
        }

Comandos e exemplos suportados

O MongoDB vCore agora suporta RBAC (Controle de Acesso Baseado em Função) para usuários secundários com privilégios de leitura e gravação. Isso permite que os administradores atribuam funções que concedem acesso a bancos de dados secundários para operações de leitura essenciais, protegendo a integridade dos dados primários.

Nota

Você pode usar qualquer um dos drivers MongoDB ou mongotools como mongosh para executar essas operações.

Autentique e execute operações via Mongosh

mongosh mongodb+srv://<YOUR_USERNAME>:<YOUR_PASSWORD>@>YOUR_HOST>?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000

Nota

Certifique-se de permitir a lista de IP do cliente nas configurações de rede no portal do Azure.

CreateUser

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

Função de administrador de dados

use admin
db.runCommand(
    {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
            { role:"clusterAdmin",db:"admin" },
            { role:"readWriteAnyDatabase", db:"admin" }
        ]
    }
)

Função Somente Leitura

use admin
db.runCommand(
    {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
            { role:"readAnyDatabase",db:"admin" }
        ]
    }
)

Atualizar Utilizador

Atualiza um usuário no banco de dados onde você executa o comando. O updateUser comando suporta apenas a atualização da senha.

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

Drop Usuário

Remove o usuário do banco de dados no qual você executa o comando.

use admin
db.runCommand(
    {
        dropUser:"<username>"
    }
)

Listar Utilizadores

Retorna informações sobre um ou mais usuários. Ele também suporta a passagem de um único usuário para usersInfo. Nesse caso, ele retorna informações sobre o usuário, sua função, etc.

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

Limitações

  • Você pode criar até 10 usuários/funções por cluster. Se você tiver um requisito para adicionar mais usuários, abra um tíquete de suporte.
  • O Updateuser comando agora suporta apenas atualizações de senha e não pode modificar outros campos de objeto.
  • O Roleinfo comando não é suportado na visualização. Alternativamente, você pode usar usersInfoo .
  • O suporte RBAC para atribuir funções a bancos de dados ou coleções específicos ainda não é suportado.