Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure Cosmos DB for MongoDB fornece um sistema de controle de acesso baseado em função interno para operações de plano de dados. Use o controle de acesso baseado em função para autorizar solicitações de dados com permissões refinadas e baseadas em função. Este guia mostra como habilitar o controle de acesso baseado em função, criar funções e usuários e autenticar com drivers com suporte.
Pré-requisitos
- Uma assinatura do Azure
- Uma conta do Azure Cosmos DB para MongoDB (versão 3.6 ou superior)
- Versão mais recente da CLI do Azure
Habilitar o controle de acesso baseado em função
Habilite o controle de acesso baseado em função em sua conta do Azure Cosmos DB para MongoDB.
Entre na CLI do Azure.
az loginHabilite o recurso de controle de acesso baseado em função em sua conta de banco de dados.
az cosmosdb create \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --kind "MongoDB" \ --capabilities "EnableMongoRoleBasedAccessControl"Dica
Você também pode habilitar o controle de acesso baseado em função na guia Recursos no portal do Azure.
Crie um banco de dados para os usuários se conectarem no portal do Azure.
Criar funções e usuários
Defina funções personalizadas e usuários para controlar o acesso à sua conta de banco de dados.
Crie uma definição de função.
az cosmosdb mongodb role definition create \ --resource-group "<resource-group-name>" \ --account-name "<account-name>" \ --body {\"Id\":\"test.My_Read_Only_Role101\",\"RoleName\":\"My_Read_Only_Role101\",\"Type\":\"CustomRole\",\"DatabaseName\":\"test\",\"Privileges\":[{\"Resource\":{\"Db\":\"test\",\"Collection\":\"test\"},\"Actions\":[\"insert\",\"find\"]}],\"Roles\":[]}Dica
Como alternativa, use um arquivo JSON:
az cosmosdb mongodb role definition create \ --resource-group "<resource-group-name>" \ --account-name "<account-name>" \ --body @role.json{ "Id": "test.My_Read_Only_Role101", "RoleName": "My_Read_Only_Role101", "Type": "CustomRole", "DatabaseName": "test", "Privileges": [{ "Resource": { "Db": "test", "Collection": "test" }, "Actions": ["insert", "find"] }], "Roles": [] }Crie uma definição de usuário com uma atribuição de função.
az cosmosdb mongodb user definition create \ --resource-group "<resource-group-name>" \ --account-name "<account-name>" \ --body {\"Id\":\"test.myName\",\"UserName\":\"myName\",\"Password\":\"pass\",\"DatabaseName\":\"test\",\"CustomData\":\"Some_Random_Info\",\"Mechanisms\":\"SCRAM-SHA-256\",\"Roles\":[{\"Role\":\"My_Read_Only_Role101\",\"Db\":\"test\"}]}Dica
Como alternativa, use um arquivo JSON:
az cosmosdb mongodb role definition create \ --resource-group "<resource-group-name>" \ --account-name "<account-name>" \ --body @role.json{ "Id": "test.myName", "UserName": "myName", "Password": "pass", "DatabaseName": "test", "CustomData": "Some_Random_Info", "Mechanisms": "SCRAM-SHA-256", "Roles": [{ "Role": "My_Read_Only_Role101", "Db": "test" }] }
Autenticar com drivers
Conecte-se ao banco de dados usando drivers compatíveis e credenciais de controle de acesso baseadas em função.
from pymongo import MongoClient
client = MongoClient(
"mongodb://<YOUR_HOSTNAME>:10255/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000",
username="<YOUR_USER>",
password="<YOUR_PASSWORD>",
authSource='<YOUR_DATABASE>',
authMechanism='SCRAM-SHA-256',
appName="<YOUR appName FROM CONNECTION STRING IN AZURE PORTAL>"
)
Executar operações comuns
Agora, execute algumas operações comuns para recursos de controle de acesso baseados em função no Azure Cosmos DB para MongoDB.
Use o comando a seguir para exibir todas as definições de função.
az cosmosdb mongodb role definition list --account-name <account-name> --resource-group <resource-group-name>Verifique a existência de uma função por sua ID.
az cosmosdb mongodb role definition exists --account-name <account-name> --resource-group <resource-group-name> --id test.My_Read_Only_RoleRemova uma definição de função usando sua ID.
az cosmosdb mongodb role definition delete --account-name <account-name> --resource-group <resource-group-name> --id test.My_Read_Only_RoleExiba todas as definições de usuário.
az cosmosdb mongodb user definition list --account-name <account-name> --resource-group <resource-group-name>Verifique a existência de um usuário por sua ID.
az cosmosdb mongodb user definition exists --account-name <account-name> --resource-group <resource-group-name> --id test.myNameRemova uma definição de usuário usando sua ID.
az cosmosdb mongodb user definition delete --account-name <account-name> --resource-group <resource-group-name> --id test.myName