Dataverse-Zugriffsrechte per Flow vergeben – Connection References mit Co-Developern teilen
- kim
- vor 5 Tagen
- 3 Min. Lesezeit
🛵 Ausgangslage: Zwei Maker, eine Mission
Marie und Marvin sind Power Platform Maker beim Unternehmen Mofa-Schuppen – einem charmanten Verleih für nostalgische Mopeds.
In ihrer gemeinsamen Lösung entwickeln sie einen Flow, der neue Buchungsanfragen automatisch verarbeitet.

Problem:
✅ Marie hat den Flow erstellt und mit Marvin geteilt (Co-Besitzer) – das klappt problemlos über die Oberfläche in Power Automate
❌ Doch Marvin erhält beim Export oder Deployment in eine neue Umgebung eine Fehlermeldung.
„Ich kann den Flow sehen und bearbeiten – aber ich kann die Lösung nicht exportieren oder deployen?“, fragt sich Marvin.

Fehlermeldung beim Deployment oder Export durch Marvin:

{"error":{"code":"0x80048306","message":"user with id 4498f998-4207-ef11-9f89-002248d8367d does not have ReadAccess right(s) for record with id edc22b0f-2838-f011-877a-000d3a83fd0f of entity Connection Reference. Consider assigning a role with the required access level to the user or team. For further troubleshooting, please work with a system administrator to use the Access Checker tool on this record: https://orgea7d98cf.crm16.dynamics.com/main.aspx?forceUCI=1&pagetype=entityrecord&etn=connectionreference&id=edc22b0f-2838-f011-877a-000d3a83fd0f. More details: {\"CallerPrincipal\":{\"PrincipalId\":\"4498f998-4207-ef11-9f89-002248d8367d\",\"Type\":8,\"IsUserPrincipal\":true},\"OwnerPrincipal\":{\"PrincipalId\":\"8c6ca988-16ff-ee11-9f89-002248d8367d\",\"Type\":8,\"IsUserPrincipal\":true},\"ObjectId\":\"edc22b0f-2838-f011-877a-000d3a83fd0f\",\"ObjectTypeCode\":10093,\"EntityName\":\"connectionreference\",\"ObjectBusinessUnitId\":\"c4bcba24-a7f3-ee11-a1fe-002248751586\",\"RightsToCheck\":\"ReadAccess\",\"RoleAccessRights\":\"None\",\"PoaAccessRights\":\"None\",\"HsmAccessRights\":\"None\",\"GrantedAccessRights\":\"None\",\"Messages\":[\"BasicMinimumPrivilegeDepthRequired = None\",\"EntityUserGroupRights = None\",\"LocalMinimumPrivilegeDepthRequiredRights = ReadAccess\",\"SecLib::AccessCheckEx2 failed. Owner Data: roleCount=2, privilegeCount=716, accessMode='0 Read-Write', AADObjectId='92d4a031-fcd0-45db-9c5e-8c0506b11e84', MetadataCachePrivilegesCount=4889, businessUnitId=c4bcba24-a7f3-ee11-a1fe-002248751586; Principal Data: roleCount=2, privilegeCount=716, accessMode='0 Read-Write', AADObjectId='21651703-e46e-4f26-bb5c-ac7d84b75439', MetadataCachePrivilegesCount=4889, businessUnitId=c4bcba24-a7f3-ee11-a1fe-002248751586\"],\"EntityOwnershipTypeMask\":1,\"CallerInfo\":{\"IsSystemUser\":false,\"IsSupportUser\":false,\"IsAdministrator\":false,\"IsCustomizer\":false,\"IsDisabled\":false,\"IsIntegrationUser\":false,\"Teams\":null,\"Roles\":null},\"ReadOnlyState\":\"UserAndOrgFullAccess\",\"IsHsmEnabled\":false,\"HsmInfo\":null,\"AccessOrigin\":null}"}}
🎯 Die Ursache: Connection References sind Dataverse-Zeilen
Connection References sind Dataverse-Zeilen – wie jede andere Tabelle im Dataverse auch.
Und: Die Standard-UI erlaubt kein direktes Teilen dieser Datensätze.
👉 Der Zugriff muss auf anderem Wege erfolgen – über API, Flow oder manuelle Freigabe.
In diesem Blog zeige ich dir eine von mehreren Möglichkeiten, wie du das lösen kannst:
gezieltes Teilen mit der Aktion GrantAccess in Power Automate.
Und für alle, die lieber klicken als automatisieren, gibt’s ganz am Ende auch noch eine Möglichkeit,
wie du Connection References über die klassische Dynamics 365-Oberfläche teilen kannst.
🔧 Zugriff gewähren mit GrantAccess
Power Automate bietet in der Aktion „Perform an unbound action“ die Aktion "Grant Access", mit der du anderen Systembenutzern Zugriff auf bestimmte Dataverse-Zeilen geben kannst – z. B. auf eine Connection Reference.
Beispiel: Marvin bekommt Leserechte auf Maries Connection Reference
Aktion: Perform an unbound action Action Name: GrantAccess

Target:
{
"@{string('@odata.type')}":"Microsoft.Dynamics.CRM.connectionreference",
"connectionreferenceid": "<DeineConnectionReferenceId>"
}
PrincipalAccess:
{
"AccessMask": "<GewünschtesZugriffsrecht",
"Principal": {
"@{string('@odata.type')}": "Microsoft.Dynamics.CRM.systemuser",
"systemuserid": "<DeineSystemUserId>"
}
}
🧠 Du musst nur drei Werte anpassen:
DeineSystemUserId: ID von Marvin (aus der systemuser-Tabelle)
DeineConnectionReferenceId: ID der Connection Reference für die gewünschte Verbindungsreferenz
GewünschtesZugriffsrecht: Höhe des Zugriffsrechts auf den Datensatz. z.B. "ReadAccess"
📘 AccessMask – Welche Rechte sind möglich?
Access Mask | Bedeutung |
ReadAccess | Lesen, genügt für Export der Lösung |
WriteAccess | Bearbeiten |
AppendAccess | In Lookups eingebunden werden |
AppendToAccess | Andere Lookups an sich binden |
DeleteAccess | Löschen |
ShareAccess | Rechte an andere vergeben |
AssignAccess | Eigentümer ändern |
Beispiel:
Marie gibt Marvin die Connection Reference für Outlook frei mit "ReadAccess", sodass Marvin die Lösung exportieren / deployen kann.

Ergebnis:
Marvin kann die Verbindungsreferenz von Marie sehen aber nicht löschen
Marvin kann die Lösung deployen / exportieren

🚫 Zugriff entziehen mit RevokeAccess
Wenn Du Zugriffe aufräumen willst, kannst du den Zugriff auch wieder entziehen.
Aktion: Perform an unbound Action Action Name: RevokeAccess

Target:
{
"@{string('@odata.type')}": "Microsoft.Dynamics.CRM.connectionreference","connectionreferenceid": "<DeineConnectionReferenceId>"
}
Revokee:
{
"@{string('@odata.type')}": "Microsoft.Dynamics.CRM.systemuser",
"systemuserid": "<DeineSystemUserId>"
}
🔄 Bonus: Connection References über die klassische Dynamics 365-Oberfläche teilen
Du willst keine Flows bauen? Es gibt auch eine Möglichkeit, Connection References über die klassische Dynamics 365-Oberfläche zu teilen – hier der Ablauf:
Öffne make.powerapps.com
Klicke oben rechts auf das ⚙️-Symbol → „Erweiterte Einstellungen“
Du landest in der klassischen Dynamics 365 Oberfläche
Oben im Menüband: Erweiterte Suche
Wähle als Tabelle: Connection Reference
Klicke auf Ergebnisse anzeigen
Wähle die gewünschte Zeile aus
Klicke im Ribbon-Menü auf „Freigeben“
Comments