Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Azure Cosmos DB dla bazy danych MongoDB udostępnia wbudowany system kontroli dostępu opartej na rolach na potrzeby operacji płaszczyzny danych. Użyj kontroli dostępu opartej na rolach, aby autoryzować żądania danych z precyzyjnymi uprawnieniami opartymi na rolach. W tym przewodniku przedstawiono sposób włączania kontroli dostępu opartej na rolach, tworzenia ról i użytkowników oraz uwierzytelniania przy użyciu obsługiwanych sterowników.
Wymagania wstępne
- Subskrypcja platformy Azure
- Konto usługi Azure Cosmos DB dla bazy danych MongoDB (wersja 3.6 lub nowsza)
- Najnowsza wersja interfejsu wiersza polecenia platformy Azure
Włączanie kontroli dostępu opartej na rolach
Włącz kontrolę dostępu opartą na rolach na koncie usługi Azure Cosmos DB dla bazy danych MongoDB.
Zaloguj się do interfejsu wiersza polecenia platformy Azure.
az loginWłącz możliwość kontroli dostępu opartej na rolach na koncie bazy danych.
az cosmosdb create \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --kind "MongoDB" \ --capabilities "EnableMongoRoleBasedAccessControl"Wskazówka
Możesz również włączyć kontrolę dostępu opartą na rolach na karcie Funkcje w witrynie Azure Portal.
Utwórz bazę danych dla użytkowników, z którymi będą się łączyć w witrynie Azure Portal.
Tworzenie ról i użytkowników
Zdefiniuj role niestandardowe i użytkowników, aby kontrolować dostęp do konta bazy danych.
Utwórz definicję roli.
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\":[]}Wskazówka
Alternatywnie użyj pliku 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": [] }Utwórz definicję użytkownika z przypisaniem roli.
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\"}]}Wskazówka
Alternatywnie użyj pliku 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" }] }
Uwierzytelnianie za pomocą sterowników
Połącz się z bazą danych przy użyciu obsługiwanych sterowników i poświadczeń kontroli dostępu opartej na rolach.
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>"
)
Wykonywanie typowych operacji
Teraz wykonaj kilka typowych operacji na potrzeby funkcji kontroli dostępu opartej na rolach w usłudze Azure Cosmos DB dla bazy danych MongoDB.
Użyj następującego polecenia, aby wyświetlić wszystkie definicje ról.
az cosmosdb mongodb role definition list --account-name <account-name> --resource-group <resource-group-name>Sprawdź istnienie roli według jej identyfikatora.
az cosmosdb mongodb role definition exists --account-name <account-name> --resource-group <resource-group-name> --id test.My_Read_Only_RoleUsuń definicję roli przy użyciu jej identyfikatora.
az cosmosdb mongodb role definition delete --account-name <account-name> --resource-group <resource-group-name> --id test.My_Read_Only_RoleWyświetl wszystkie definicje użytkownika.
az cosmosdb mongodb user definition list --account-name <account-name> --resource-group <resource-group-name>Sprawdź istnienie użytkownika według jego identyfikatora.
az cosmosdb mongodb user definition exists --account-name <account-name> --resource-group <resource-group-name> --id test.myNameUsuń definicję użytkownika przy użyciu jego identyfikatora.
az cosmosdb mongodb user definition delete --account-name <account-name> --resource-group <resource-group-name> --id test.myName