Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Cosmos DB for MongoDB tillhandahåller ett inbyggt rollbaserat åtkomstkontrollsystem för dataplansåtgärder. Använd rollbaserad åtkomstkontroll för att auktorisera databegäranden med detaljerade, rollbaserade behörigheter. Den här guiden visar hur du aktiverar rollbaserad åtkomstkontroll, skapar roller och användare och autentiserar med drivrutiner som stöds.
Förutsättningar
- En prenumeration på Azure
- Ett Azure Cosmos DB för MongoDB-konto (version 3.6 eller senare)
- Senaste versionen av Azure CLI
Aktivera rollbaserad åtkomstkontroll
Aktivera rollbaserad åtkomstkontroll på ditt Azure Cosmos DB för MongoDB-konto.
Logga in på Azure CLI.
az loginAktivera den rollbaserade åtkomstkontrollfunktionen för ditt databaskonto.
az cosmosdb create \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --kind "MongoDB" \ --capabilities "EnableMongoRoleBasedAccessControl"Tips/Råd
Du kan också aktivera rollbaserad åtkomstkontroll från fliken Funktioner i Azure-portalen.
Skapa en databas som användarna kan ansluta till i Azure-portalen.
Skapa roller och användare
Definiera anpassade roller och användare för att styra åtkomsten till ditt databaskonto.
Skapa en rolldefinition.
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\":[]}Tips/Råd
Du kan också använda en JSON-fil:
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": [] }Skapa en användardefinition med en rolltilldelning.
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\"}]}Tips/Råd
Du kan också använda en JSON-fil:
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" }] }
Autentisera med drivrutiner
Anslut till databasen med drivrutiner som stöds och autentiseringsuppgifter för rollbaserad åtkomstkontroll.
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>"
)
Utföra vanliga åtgärder
Utför nu några vanliga åtgärder för rollbaserade åtkomstkontrollfunktioner i Azure Cosmos DB för MongoDB.
Använd följande kommando för att visa alla rolldefinitioner.
az cosmosdb mongodb role definition list --account-name <account-name> --resource-group <resource-group-name>Kontrollera att det finns en roll med dess ID.
az cosmosdb mongodb role definition exists --account-name <account-name> --resource-group <resource-group-name> --id test.My_Read_Only_RoleTa bort en rolldefinition med dess ID.
az cosmosdb mongodb role definition delete --account-name <account-name> --resource-group <resource-group-name> --id test.My_Read_Only_RoleVisa alla användardefinitioner.
az cosmosdb mongodb user definition list --account-name <account-name> --resource-group <resource-group-name>Kontrollera att det finns en användare med dess ID.
az cosmosdb mongodb user definition exists --account-name <account-name> --resource-group <resource-group-name> --id test.myNameTa bort en användardefinition med dess ID.
az cosmosdb mongodb user definition delete --account-name <account-name> --resource-group <resource-group-name> --id test.myName