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 usarusersInfo
o . - O suporte RBAC para atribuir funções a bancos de dados ou coleções específicos ainda não é suportado.