根据this文档,您只需can创建一个容器。但这肯定不是真的。
我做了一些搜索并询问了聊天机器人,他们似乎确认我的帐户需要这些角色来创建新的容器。
Cosmos DB Built-in Data Contributor
Cosmos DB Operator
我已经创建了一个具有这两个角色的帐户,并手动创建了一个cosmos db。但我使用此帐户的应用程序仍然无法创建新容器。调用
CreateContainerIfNotExistsAsync
方法时出现 403 错误。
我的帐户缺少什么角色/权限?
谢谢
为您的应用程序分配
Cosmos DB Operator
角色(也许您正在使用 sp 来调用请求?)
您实际需要的操作是
Microsoft.DocumentDB/databaseAccounts/tables/containers/entities/create
,但是微软并没有提供如此细粒度的角色,如果您查看Cosmos DB operator
详细信息
"properties": {
"roleName": "Cosmos DB Operator",
"description": "Lets you manage Azure Cosmos DB accounts, but not access data in them. Prevents access to account keys and connection strings.",
"assignableScopes": [
"/"
],
"permissions": [
{
"actions": [
"Microsoft.DocumentDb/databaseAccounts/*",
"Microsoft.Insights/alertRules/*",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/deployments/*",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Support/*",
"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action"
],
容器实体创建操作包含在
"Microsoft.DocumentDb/databaseAccounts/*"
中