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

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

Сообщение Anonymous »

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

"Код состояния ответа не указывает на успех: запрещено (403);
Подстатус : 5301; ActivityId: [ActivityId]; Причина:
({\"код\":\"Запрещено\",\"сообщение\":\"Запрос заблокирован авторизацией
[cosmosdbaccountname] : Запрос заблокировано, поскольку участник
[PrincipalID] не имеет необходимых разрешений RBAC для выполнения
действия [Microsoft.DocumentDB/databaseAccounts/readMetadata] на
ресурсе [/]. RequestUri:
https://[cosmosdbaccountname].documents.azure.com/;\r\nRequestMethod:
GET;\r\nHeader: Длина авторизации:
[AuthorizationLength];\r\nЗаголовок: Длина элемента управления кэшем:
8;\r\nЗаголовок: Пользовательский агент Длина: [UserAgentLength];\r\nHeader:
x-ms-version Длина: 10;\r\nHeader:
x-ms-cosmos-sdk-supportedcapabilities Длина: 1;\r\nHeader : Accept
Длина: 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

Также попробовал метод CreateContainerIfNotExists, который только что вызвал саму ошибку.

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

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

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

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

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

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

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