Каковы причины ошибки разрешения RBAC в библиотеке Azure CosmosDB .Net?C#

Место общения программистов C#
Ответить
Anonymous
 Каковы причины ошибки разрешения RBAC в библиотеке Azure CosmosDB .Net?

Сообщение Anonymous »

При тестировании базовых функций Azure CosmosDB noSQL я продолжал получать эту ошибку:
"Запрос заблокирован, поскольку участник [PrincipalID] не имеет необходимых разрешений RBAC для выполнения действия" p>
(Полная ошибка)

"Код состояния ответа не указывает на успех: запрещено (403); Подстатус: 5301; ActivityId: [ActivityId]; Причина: ({\"code\":\"Запрещено\",\"message\":\"Запрос заблокирован авторизацией [cosmosdbaccountname]: запрос заблокирован, поскольку участник [PrincipalID] не имеет необходимых разрешений RBAC чтобы выполнить действие [Microsoft.DocumentDB/databaseAccounts/readMetadata] над ресурсом [/]. https://[cosmosdbaccountname].documents.azure.com/;\r\nRequestMethod: GET;\r\nHeader: длина авторизации: [AuthorizationLength];\r\nHeader: длина Cache-Control: 8;\r\nHeader : Длина пользовательского агента: [UserAgentLength];\r\nЗаголовок: Длина x-ms-версии: 10;\r\nЗаголовок: x-ms-cosmos-sdk-supportedcapabilities Длина: 1;\r\nЗаголовок: Длина принятия: 16;\r\n, URI запроса: /, RequestStats: , SDK: Windows/10.0.19045 Cosmos-netstandard-sdk/3.37.1);"}Microsoft.Azure.Cosmos.CosmosException"
Портал Azure:

Изображение

Я владелец и единственный пользователь этой БД, я пытался убедитесь, что я являюсь владельцем, снова добавив эту роль в свою учетную запись. Я вошел в систему с помощью входа в систему az и azd auth. У меня уже есть и база данных, и контейнер.
Вот код, в котором я его использую (в качестве примера использованы британские стандарты)

Код: Выделить всё

using Azure.Identity;
using Microsoft.Azure.Cosmos;

CosmosClient client = new CosmosClient(
accountEndpoint: "https://[censored].documents.azure.com:[censored]/",
tokenCredential: new DefaultAzureCredential()
);
Database database = client.GetDatabase("SampleDB");
Container container = database.GetContainer("British-Standards");

British_Standard standard = new()
{
id = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
Standard_Name = "BS 5720: Ventilation and Air Conditioning",
Standard_Description = "This standard provides guidance on the design,"+
" installation, testing, and commissioning of ventilation and air conditioning systems in buildings.",
Standard_Category = (StandardCategories)1 //Enum
};

ItemResponse
response = await container.CreateItemAsync(standard); //error here
Console.WriteLine(response.RequestCharge + "RUs for this test");
Console.WriteLine("test");
Также попробовал метод CreateContainerIfNotExists, который только что вызвал саму ошибку.

Это было протестировано сначала в vscode, а затем в Visual Studio для отладчика.< /п>

Подробнее здесь: https://stackoverflow.com/questions/792 ... et-library
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»