Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Cosmos DB pro MongoDB poskytuje integrovaný systém řízení přístupu na základě role pro operace roviny dat. Pomocí řízení přístupu na základě role můžete autorizovat žádosti o data s jemně odstupňovanými oprávněními založenými na rolích. V této příručce se dozvíte, jak povolit řízení přístupu na základě role, vytvářet role a uživatele a ověřovat se pomocí podporovaných ovladačů.
Požadavky
- Předplatné Azure
- Účet služby Azure Cosmos DB pro MongoDB (verze 3.6 nebo vyšší)
- Nejnovější verze Azure CLI
Povolení řízení přístupu na základě role
Povolte řízení přístupu na základě role ve vašem účtu Služby Azure Cosmos DB pro MongoDB.
Přihlaste se k Azure CLI.
az loginPovolte ve svém databázovém účtu funkci řízení přístupu na základě role.
az cosmosdb create \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --kind "MongoDB" \ --capabilities "EnableMongoRoleBasedAccessControl"Návod
Řízení přístupu na základě role můžete také povolit na kartě Funkce na webu Azure Portal.
Vytvořte databázi, ke které se uživatelé budou připojovat na webu Azure Portal.
Vytváření rolí a uživatelů
Definujte vlastní role a uživatele pro řízení přístupu k vašemu databázovému účtu.
Vytvořte definici role.
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\":[]}Návod
Případně použijte soubor 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": [] }Vytvořte definici uživatele s přiřazením role.
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\"}]}Návod
Případně použijte soubor 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" }] }
Ověřování pomocí ovladačů
Připojte se k databázi pomocí podporovaných ovladačů a přihlašovacích údajů řízení přístupu na základě role.
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>"
)
Provádění běžných operací
Teď proveďte některé běžné operace pro funkce řízení přístupu na základě role ve službě Azure Cosmos DB pro MongoDB.
K zobrazení všech definic rolí použijte následující příkaz.
az cosmosdb mongodb role definition list --account-name <account-name> --resource-group <resource-group-name>Ověřte existenci role podle jeho ID.
az cosmosdb mongodb role definition exists --account-name <account-name> --resource-group <resource-group-name> --id test.My_Read_Only_RoleOdeberte definici role pomocí jejího ID.
az cosmosdb mongodb role definition delete --account-name <account-name> --resource-group <resource-group-name> --id test.My_Read_Only_RoleZobrazí všechny definice uživatelů.
az cosmosdb mongodb user definition list --account-name <account-name> --resource-group <resource-group-name>Ověřte existenci uživatele podle jeho ID.
az cosmosdb mongodb user definition exists --account-name <account-name> --resource-group <resource-group-name> --id test.myNameOdeberte definici uživatele pomocí jejího ID.
az cosmosdb mongodb user definition delete --account-name <account-name> --resource-group <resource-group-name> --id test.myName