Azure CosmosDB Enumeration
Azure CosmosDB
List Azure Cosmos DB database accounts.
az cosmosdb list --resource-group $RESOURCE_GROUP
az cosmosdb show --resource-group $RESOURCE_GROUP --name <AccountName>
az cosmosdb list -o table \
--query "[].{Name:name, Kind:kind, Endpoint:documentEndpoint, PublicAccess:publicNetworkAccess, NetworkBypass:networkAclBypass, Location:location,NoVnet:isVirtualNetworkFilterEnabled, LocalAuth:disableLocalAuth}" \
--resource-group $RESOURCE_GROUP
Lists the virtual network accounts associated with a Cosmos DB account
az cosmosdb network-rule list --resource-group $RESOURCE_GROUP --name <AccountName>
List the access keys or connection strings for a Azure Cosmos DB
az cosmosdb keys list --resource-group $RESOURCE_GROUP --name $SERVER_NAME
List all the database accounts that can be restored.
az cosmosdb restorable-database-account list --account-name <AccountName>
Show the identities for a Azure Cosmos DB database account.
az cosmosdb identity show --resource-group $RESOURCE_GROUP --name <AccountName>
CosmoDB (NoSQL)
List the NoSQL databases under an Azure Cosmos DB account.
az cosmosdb sql database list --resource-group $RESOURCE_GROUP --account-name <AccountName>
List the NoSQL containers under an Azure Cosmos DB SQL database.
az cosmosdb sql container list --account-name <AccountName> --database-name <DatabaseName> --resource-group $RESOURCE_GROUP
List all NoSQL role assignments under an Azure Cosmos DB
az cosmosdb sql role assignment list --resource-group $RESOURCE_GROUP --account-name <AccountName>
List all NoSQL role definitions under an Azure Cosmos DB
az cosmosdb sql role definition list --resource-group $RESOURCE_GROUP --account-name <AccountName>
Create database
az cosmosdb sql database create \
--account-name <AccountName> \
--resource-group $RESOURCE_GROUP \
--name <name-database>
Create container
az cosmosdb sql container create \
--account-name <AccountName> \
--resource-group $RESOURCE_GROUP \
--database-name <name-database> \
--name <container-name> \
--partition-key-path /mypartitionkey
Access database with key
from azure.cosmos import CosmosClient
client = CosmosClient(
url="https://<account-name>.documents.azure.com:443/",
credential="<key>"
)
db = client.get_database_client("<database>")
container = db.get_container_client("<container>")
for item in container.read_all_items():
print(item)
Create custom role
Generate role uid
Access using credentials
from azure.identity import ClientSecretCredential
from azure.cosmos import CosmosClient
credential = ClientSecretCredential(
tenant_id="$TENANT_ID",
client_id="$CLIENT_ID",
client_secret="$CLIENT_SECRET"
)
client = CosmosClient(
url="https://<account-name>.documents.azure.com:443/",
credential=credential
)
db = client.get_database_client("<database>")
container = db.get_container_client("<container>")
for item in container.read_all_items():
print(item)