top of page

Dataverse-Zugriffsrechte per Flow vergeben – Connection References mit Co-Developern teilen

  • Autorenbild: kim
    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:

  1. Öffne make.powerapps.com

  2. Klicke oben rechts auf das ⚙️-Symbol → „Erweiterte Einstellungen“


  3. Du landest in der klassischen Dynamics 365 Oberfläche

  4. Oben im Menüband: Erweiterte Suche

  5. Wähle als Tabelle: Connection Reference

  6. Klicke auf Ergebnisse anzeigen


  7. Wähle die gewünschte Zeile aus

  8. Klicke im Ribbon-Menü auf „Freigeben“




🔗 Nützliche Links

 
 
 

Comments


bottom of page