Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Cosmos DB w Microsoft Fabric korzysta wyłącznie z uwierzytelniania za pomocą Microsoft Entra ID i wbudowanych ról poziomu danych do zarządzania uwierzytelnianiem i autoryzacją. W tym przewodniku użyjesz Microsoft Entra ID i zalogowanego konta, aby połączyć się z artefaktem Cosmos DB w Microsoft Fabric.
Ważne
Kroki są podobne do procesu używanego do uwierzytelniania, jeśli używasz jednostki usługi, grupy lub innego typu Microsoft Entra ID. Aby przyznać jednostce usługi możliwość nawiązywania połączenia z usługą Microsoft Fabric i bazą danych usługi Cosmos DB, włącz ustawienie "Jednostki usług mogą używać interfejsów API Fabric w dzierżawie Fabric. Aby uzyskać więcej informacji, zobacz Ustawienia dzierżawy usługi Microsoft Fabric. To ustawienie jest domyślnie włączone dla nowych klientów.
Wymagania wstępne
Istniejąca pojemność Fabric
- Jeśli nie masz pojemności Fabric, uruchom wersję próbną usługi Fabric.
Istniejąca baza danych Cosmos DB na platformie Fabric
- Jeśli jeszcze go nie masz, utwórz nową bazę danych Cosmos DB w usłudze Fabric.
Tożsamość z uprawnieniem Odczyt dla bazy danych w Fabric
- Aby uzyskać więcej informacji na temat uprawnień Fabric, patrz Kontrola dostępu.
Azure CLI
- Jeśli jeszcze go nie masz, zainstaluj interfejs wiersza polecenia platformy Azure.
- Środowisko Python w wersji 3.12 lub nowszej
- Node.js 22 lub nowsze
- Pakiet SDK .NET 9.0 lub nowszy
Uzyskaj punkt końcowy Cosmos DB
Najpierw uzyskaj punkt końcowy dla bazy danych Cosmos DB w Fabric. Ten punkt końcowy jest wymagany do nawiązania połączenia przy użyciu zestawu Azure SDK.
Otwórz portal Fabric (https://app.fabric.microsoft.com).
Przejdź do istniejącej bazy danych Cosmos DB.
Wybierz opcję Ustawienia na pasku menu bazy danych.
W oknie dialogowym ustawień przejdź do sekcji Połączenie . Następnie skopiuj wartość pola Adres końcowy dla bazy danych NoSQL Cosmos DB. Ta wartość jest używana w późniejszych krokach.
Zaloguj się do Azure CLI
Teraz uwierzytelnij się w interfejsie wiersza polecenia platformy Azure. Zestaw Azure SDK może używać różnych mechanizmów uwierzytelniania do weryfikowania tożsamości, ale interfejs wiersza polecenia platformy Azure jest najbardziej uniwersalną i bezproblemową opcją w różnych językach deweloperskich.
W lokalnym środowisku projektowym otwórz terminal.
Uwierzytelnij się w Azure CLI przy użyciu
az login.az loginWykonaj interaktywne kroki, aby wykonać uwierzytelnianie wieloskładnikowe (MFA) i wybierz subskrypcję.
Sprawdź, czy twoje konto zostało pomyślnie zarejestrowane, wykonując zapytanie dotyczące tożsamości.
az ad signed-in-user showZwróć uwagę na dane wyjściowe poprzedniego polecenia. Pole
idzawiera ID głównego podmiotu (obiektu) aktualnie zalogowanego użytkownika.{ "@odata.context": "<https://graph.microsoft.com/v1.0/$metadata#users/$entity>", "businessPhones": [], "displayName": "Kai Carter", "givenName": "Kai", "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "jobTitle": "Senior Sales Representative", "mail": "<kai@adventure-works.com>", "mobilePhone": null, "officeLocation": "Redmond", "preferredLanguage": null, "surname": "Carter", "userPrincipalName": "<kai@adventure-works.com>" }Uwaga / Notatka
W terminologii Microsoft Entra ID ta tożsamość jest określana jako tożsamość ludzka. Jest to typ tożsamości, który może łączyć się z bazami danych wśród wielu różnych typów, w tym, ale nie tylko:
- Zarządzane tożsamości (przypisane przez system lub użytkownika)
- Tożsamości obciążeń
- Tożsamości aplikacji
- Tożsamości urządzeń
Te kroki koncentrują się na korzystaniu z tożsamości ludzkiej w celu nawiązania połączenia z bazą danych w usłudze Fabric, ale kroki są podobne w przypadku nawiązywania połączenia przy użyciu innego typu tożsamości. Aby uzyskać więcej informacji na temat tożsamości, zobacz Podstawy tożsamości.
Nawiązywanie połączenia przy użyciu zestawu Azure SDK
Na koniec użyj Azure SDK, aby połączyć się z bazą danych Cosmos DB w Fabric, korzystając z punktu końcowego i swojej tożsamości. Zestaw Azure SDK jest dostarczany z ujednoliconą biblioteką tożsamości , która automatycznie obsługuje uwierzytelnianie w Twoim imieniu. Ten krok wykorzystuje typ DefaultAzureCredential(), który automatycznie znajduje odpowiedni typ tożsamości w zależności od środowiska.
Uwaga / Notatka
Obiekty poświadczeń platformy Azure nie są obsługiwane w notesach usługi Microsoft Fabric. Nie można użyć DefaultAzureCredential do uwierzytelniania w usłudze Cosmos DB w Fabric. Aby uwierzytelnić się, musisz utworzyć niestandardowy obiekt poświadczeń w notesach. Aby uzyskać więcej informacji, zobacz Autentykacja w Cosmos DB w Microsoft Fabric za pomocą notebooków Fabric.
from azure.cosmos.aio import CosmosClient
from azure.identity import DefaultAzureCredential
endpoint = "<cosmos-db-fabric-endpoint>"
credential = DefaultAzureCredential()
async with CosmosClient(endpoint, credential=credential) as client:
container = client.get_database_client("<database-name>").get_container_client("<container-name>")
nosql = "SELECT TOP 10 VALUE item.id FROM items AS item"
results = container.query_items(
query=nosql
)
items = []
async for item in results:
items.append(item)
for item in items:
print(item)
Uwaga / Notatka
W tym przykładzie użyto pakietów azure-identity i azure-cosmos z PyPI. Zwróć uwagę na użycie azure.cosmos.aio dla obsługi asynchronicznej.
import { Container, CosmosClient, CosmosClientOptions } from '@azure/cosmos'
import { TokenCredential, DefaultAzureCredential } from '@azure/identity'
const endpoint: string = '<cosmos-db-fabric-endpoint>';
const credential: TokenCredential = new DefaultAzureCredential();
const options: CosmosClientOptions = {
endpoint: endpoint,
aadCredentials: credential
};
const client: CosmosClient = new CosmosClient(options);
const container: Container = client.database('<database-name>').container('<container-name>');
const nosql = 'SELECT TOP 10 VALUE item.id FROM items AS item';
const querySpec = {
query: nosql
};
const response = await container.items.query(querySpec).fetchAll();
for (const item of response.resources) {
console.log(item);
}
Uwaga / Notatka
W tym przykładzie użyto pakietów @azure/identity i @azure/cosmos z npm.
using Azure.Identity;
using Microsoft.Azure.Cosmos;
string endpoint = "<cosmos-db-fabric-endpoint>";
DefaultAzureCredential credential = new();
using CosmosClient client = new(endpoint, credential);
Container container = client
.GetDatabase("<database-name>")
.GetContainer("<container-name>");
string sql = "SELECT TOP 10 VALUE item.id FROM items AS item";
QueryDefinition query = new(sql);
FeedIterator<string> iterator = container.GetItemQueryIterator<string>(query);
while (iterator.HasMoreResults)
{
FeedResponse<string> response = await iterator.ReadNextAsync();
foreach (var item in response)
{
Console.WriteLine(item);
}
}
Uwaga / Notatka
W tym przykładzie użyto pakietu Azure.Identity i pakietu Microsoft.Azure.Cosmos z NuGet.