Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Cosmos DB in Microsoft Fabric basiert ausschließlich auf der Microsoft Entra ID-Authentifizierung und integrierten Datenebenenrollen zum Verwalten von Authentifizierung und Autorisierung. In diesem Leitfaden verwenden Sie Die Microsoft Entra-ID und Ihr angemeldetes Konto, um eine Verbindung mit einem Cosmos DB-Artefakt in Microsoft Fabric herzustellen.
Von Bedeutung
Die Schritte ähneln dem Prozess, der für die Authentifizierung verwendet wird, wenn Sie einen Dienstprinzipal, eine Gruppe oder einen anderen Typ von Microsoft Entra ID-Identität verwenden. Um einem Dienstprinzipal die Möglichkeit zu gewähren, eine Verbindung mit Microsoft Fabric und Ihrer Cosmos DB-Datenbank herzustellen, aktivieren Sie die Einstellung "Dienstprinzipale können Fabric-APIs im Fabric-Mandanten verwenden. Weitere Informationen finden Sie unter Microsoft Fabric-Mandanteneinstellungen. Diese Einstellung ist für neue Kunden standardmäßig aktiviert.
Voraussetzungen
Bestehende Fabric-Kapazität
- Wenn Sie über keine Fabric-Kapazität verfügen, starten Sie eine Fabric-Testversion.
Eine vorhandene Cosmos DB-Datenbank in Fabric
- Wenn Sie noch keine Datenbank besitzen, erstellen Sie eine neue Cosmos DB-Datenbank in Fabric.
Eine Identität mit der Leseberechtigung für die Datenbank in Fabric
- Weitere Informationen zu Fabric-Berechtigungen finden Sie unter Zugriffssteuerungen.
Azure-Befehlszeilenschnittstelle (Azure CLI)
- Wenn Sie sie noch nicht haben, installieren Sie Azure CLI.
- Python 3.12 oder höher
- Node.js 22 oder höher
- .NET SDK 9.0 oder höher
Abrufen des Cosmos-DB-Endpunkts
Rufen Sie zuerst den Endpunkt für die Cosmos DB-Datenbank in Fabric ab. Dieser Endpunkt ist erforderlich, um eine Verbindung mit dem Azure SDK herzustellen.
Öffnen Sie das Fabric-Portal (https://app.fabric.microsoft.com).
Navigieren Sie zu Ihrer vorhandenen Cosmos DB-Datenbank.
Wählen Sie die Einstellungsoption in der Menüleiste für die Datenbank aus.
Navigieren Sie im Dialogfeld "Einstellungen" zum Abschnitt "Verbindung" . Kopieren Sie dann den Wert des Feldes "Endpunkt für die Cosmos DB NoSQL-Datenbank". Sie verwenden diesen Wert in einem späteren Schritt[s].
Authentifizieren bei Azure CLI
Authentifizieren Sie sich jetzt bei der Azure CLI. Das Azure SDK kann verschiedene Authentifizierungsmechanismen verwenden, um Ihre Identität zu überprüfen, aber die Azure CLI ist die universellste und reibungsloseste Option in verschiedenen Entwicklersprachen.
Öffnen Sie in Ihrer lokalen Entwicklungsumgebung ein Terminal.
Authentifizieren bei Azure CLI mithilfe von
az login.az loginFühren Sie die interaktiven Schritte aus, um die mehrstufige Authentifizierung (MFA) durchzuführen und Ihr Abonnement auszuwählen.
Überprüfen Sie, ob Ihr Konto erfolgreich angemeldet ist, indem Sie Ihre Identität abfragen.
az ad signed-in-user showSehen Sie sich die Ausgabe des vorherigen Befehls an. Das
idFeld enthält die Prinzipal-ID (Objekt) der aktuell angemeldeten Identität.{ "@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>" }Hinweis
In Microsoft Entra ID-Begriffen wird diese Identität als Ihre menschliche Identität bezeichnet. Es ist eine Art von Identität, die eine Verbindung mit Datenbanken unter vielen verschiedenen Typen herstellen kann, einschließlich, aber nicht beschränkt auf:
- Verwaltete Identitäten (System oder vom Benutzer zugewiesen)
- Workload-Identitäten
- Anwendungsidentitäten
- Geräteidentitäten
Während sich diese Schritte auf die Verwendung Ihrer menschlichen Identität zum Herstellen einer Verbindung mit der Datenbank in Fabric konzentrieren, sind die Schritte ähnlich, wenn Sie eine Verbindung mit einem anderen Identitätstyp herstellen. Weitere Informationen zu Identitäten finden Sie unter Identitätsgrundlagen.
Verbinden mit Azure SDK
Verwenden Sie schließlich das Azure SDK, um mithilfe des Endpunkts und Ihrer Identität eine Verbindung mit der Cosmos DB-Datenbank in Fabric herzustellen. Das Azure SDK wird mit einer einheitlichen Identitätsbibliothek ausgeliefert, die die Authentifizierung in Ihrem Auftrag automatisch verarbeitet. In diesem Schritt wird der DefaultAzureCredential() Typ verwendet, der den richtigen Identitätstyp basierend auf Ihrer Umgebung automatisch findet.
Hinweis
Azure-Anmeldeinformationsobjekte werden in Microsoft Fabric-Notizbüchern nicht unterstützt. Sie können DefaultAzureCredential nicht zur Authentifizierung an Cosmos DB in Fabric verwenden. Sie müssen ein benutzerdefiniertes Anmeldeinformationsobjekt in Ihren Notizbüchern erstellen, um sich zu authentifizieren. Weitere Informationen finden Sie unter Authentifizieren bei Cosmos DB in Microsoft Fabric über Fabric Notebooks.
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)
Hinweis
In diesem Beispiel werden die Pakete azure-identity und azure-cosmos von PyPI verwendet. Beachten Sie die Verwendung von azure.cosmos.aio für die asynchrone Unterstützung.
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);
}
Hinweis
In diesem Beispiel werden die Pakete @azure/identity und @azure/cosmos von npm verwendet.
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);
}
}
Hinweis
In diesem Beispiel werden die Pakete Azure.Identity und Microsoft.Azure.Cosmos von NuGet verwendet.