Synapse Serverless + Synapse Link to CosmosDB: OPENROWSET permission denied for non-admin AAD users when accessing workspace-managed credential

Manuel 0 Zuverlässigkeitspunkte
2026-04-24T10:29:28.9466667+00:00

Environment

  • Azure Synapse Analytics – Serverless SQL Pool
  • Synapse Link enabled for CosmosDB (Analytical Storage)
  • Authentication: AAD users via Power BI
  • Credential type: server-scoped (sys.credentials), managed by the Synapse workspace (not a database-scoped credential)

Problem

We are using OPENROWSET via Synapse Link to query the CosmosDB analytical store. This works fine for dbo / Synapse Administrators. However, when a non-admin AAD user tries to execute a view that internally uses OPENROWSET, they receive a permission denied error.

The credential used is a workspace-managed, server-scoped credential (visible in sys.credentials), created automatically by the Synapse Link setup. It is not a database-scoped credential.

What we tried

  • GRANT REFERENCES ON CREDENTIAL::[] TO [user] – did not resolve the issue
  • GRANT SELECT ON SCHEMA::dbo TO [user] – did not resolve the issue
  • Assigning the Synapse SQL Administrator role – works, but grants far too many privileges

Question

What is the correct and minimal permission set to allow non-admin AAD users to query views that use OPENROWSET against a Synapse Link / CosmosDB workspace-managed credential?

Is there any supported way to grant access to a workspace-managed server-scoped credential without elevating the user to Synapse SQL Administrator? Or is the only supported path to materialize the data (e.g., via ADLS Gen2 / Parquet) and use a database-scoped credential instead?

Azure Synapse Analytics
Azure Synapse Analytics

Ein Azure-Analysedienst, der Datenintegration, Data Warehousing für Unternehmen und Big Data-Analysen vereint. Zuvor als Azure SQL Data Warehouse bezeichnet.

0 Kommentare Keine Kommentare

1 Antwort

Sortieren nach: Am hilfreichsten
  1. SAI JAGADEESH KUDIPUDI 3,650 Zuverlässigkeitspunkte Externe Microsoft-Mitarbeiter Moderator
    2026-04-24T15:29:03.4033333+00:00

    Hi Manuel,

    Vielen Dank, dass Sie Ihre detaillierte Analyse geteilt haben — es ist klar, dass Sie sich sorgfältig mit diesem Szenario auseinandergesetzt haben. Ich habe Ihre Schlussfolgerungen anhand des offiziellen Verhaltens von Azure Synapse Analytics (serverless SQL pool) und Synapse Link überprüft und kann bestätigen, dass Ihr Verständnis mit dem Plattformdesign übereinstimmt.

    Root Cause Confirmation
    Sie haben die zentrale Einschränkung korrekt identifiziert. In serverlosen SQL-Pools wird der Zugriff auf externe Daten gesteuert durch:

    Microsoft Entra (AAD) Passthrough-Identität, oder

    Anmeldeinformationen (serverseitig oder datenbankseitig)

    Die Verwendung von Anmeldeinformationen folgt jedoch strengen Grenzen:

    Eine serverseitige Anmeldeinformation muss von einem privilegierten Benutzer erstellt und explizit mit GRANT REFERENCES zugewiesen werden, damit SQL-Benutzer sie verwenden können.

    Für Microsoft Entra-Benutzer erfolgt der Zugriff in der Regel identitätsbasiert und nicht über die gemeinsame Nutzung von Anmeldeinformationen.

    Diese vom Arbeitsbereich verwalteten (serverseitigen) Anmeldeinformationen, die von Synapse Link verwendet werden, können nicht sicher oder flexibel an Nicht-Admin-Benutzer delegiert werden — dies ist eine Einschränkung der Authentifizierungsdurchsetzung in serverlosem SQL.

    Option 1 – Datenbankseitige Anmeldeinformation

    Dieser Ansatz entspricht vollständig den Microsoft-Richtlinien.

    Datenbankseitige Anmeldeinformationen werden auf Datenbankebene definiert und dienen dem sicheren Zugriff auf externe Ressourcen.

    Sie können mit externen Datenquellen kombiniert und in Abfragen wie OPENROWSET verwendet werden.

    Der Zugriff wird über SQL-Berechtigungen gesteuert (z. B. GRANT REFERENCES).

    Dieser Ansatz bietet ein sauberes Least-Privilege-Modell und löst das Zugriffsproblem zuverlässig.

    Option 2 – Materialisierung in ADLS Gen2 (Produktionsmuster)

    Dies ist ebenfalls ein gültiges und häufig verwendetes Entwurfsmuster.

    Serverloses SQL liest direkt aus dem Speicher, und der Zugriff wird gesteuert über:

    Storage RBAC

    ACLs

    oder SAS-Token

    Die Verwendung von ADLS als Zwischenschicht ermöglicht es Ihnen, standardmäßige RBAC- und Datenbankberechtigungen anzuwenden, ohne auf Synapse-Link-Anmeldeinformationen angewiesen zu sein.

    Ja, besonders geeignet für Produktions- und Power BI-Szenarien, bei denen eine zentrale Zugriffskontrolle erforderlich ist.

    Option 3 – EXECUTE AS

    Ihre Einschätzung hierzu ist ebenfalls korrekt.

    Während serverloses SQL Anmeldeinformations-basierte Zugriffsmuster unterstützt, garantiert ein Wechsel des Ausführungskontexts nicht die Umgehung der Durchsetzungsregeln für Anmeldeinformationen.

    Die Plattform validiert weiterhin den Speicherzugriff basierend auf der effektiven Aufruferidentität oder der Zuordnung der Anmeldeinformationen.

    Für diesen Anwendungsfall nicht zuverlässig und nicht als langfristige Lösung empfohlen.

    Plattformeinschränkungen (Bestätigt)

    Ihr Abschnitt „Nicht unterstützt“ ist korrekt und wichtig hervorzuheben.

    Basierend auf dem offiziellen Verhalten:

    Der Zugriff auf Speicher ist entweder:

    identitätsbasiert (Aufrufer), oder

    anmeldeinformationsbasiert über explizite Konfiguration

    Die Nutzung von Anmeldeinformationen erfordert eine explizite Zuordnung und Berechtigungen — es gibt keine flexible Abstraktionsschicht zum Teilen von arbeitsbereichsverwalteten Anmeldeinformationen.

    Dies bestätigt:

    Es gibt keine unterstützte Möglichkeit, arbeitsbereichsverwaltete Anmeldeinformationen breit zu delegieren

    Eine feingranulare RBAC-Steuerung für diese Anmeldeinformationen ist derzeit nicht verfügbar

    Microsoft Reference Links :
    Access external storage in serverless SQL pool
    OPENROWSET security and credential usage
    External storage access patterns in Synapse SQL
    Azure Synapse Link for Cosmos DB
    Ich hoffe, das hilft weiter. Wenn Sie weitere Fragen haben, lassen Sie es mich bitte wissen. Ich helfe Ihnen gerne weiter. Bitte vergessen Sie nicht, die Antwort zu „Akzeptieren“ und „up-voten“, wenn die bereitgestellten Informationen hilfreich sind, da dies auch anderen Community-Mitgliedern zugutekommen kann.

    War diese Antwort hilfreich?


Ihre Antwort

Antworten können von Fragestellenden als „Angenommen“ und von Moderierenden als „Empfohlen“ gekennzeichnet werden, wodurch Benutzende wissen, dass diese Antwort das Problem des Fragestellenden gelöst hat.