Berechtigungen
Berechtigungen legen fest, wer in einem Projekt was sehen und ändern darf. Standardmäßig hat niemand Zugriff auf ein Projekt: Jede Person wird ausdrücklich hinzugefügt, und Zugriff auf ein Projekt gilt nie für ein anderes.
Drei Ebenen greifen ineinander:
- Mitglieder und Gruppen: wer im Projekt ist.
- Rollen und Vererbung: welche Ordner, Tabellen, Dateien und Apps jemand sehen, ändern oder freigeben darf.
- Zeilenfilter: welche Zeilen einer Tabelle jemand sieht. Die Datenbank selbst setzt sie durch.
Mitglieder und Gruppen
Ein Mitglied ist eine Person, die dem Projekt hinzugefügt wurde. Eine Gruppe fasst Mitglieder und andere Gruppen zusammen, sodass Sie Zugriff einmal statt pro Person vergeben. Gruppen lassen sich verschachteln: Wer Mitglied von Controlling ist, ist auch Mitglied jeder Gruppe, die Controlling enthält.
Jedes Projekt hat drei eingebaute Gruppen:
| Gruppe | Mitglieder |
|---|---|
| Project Members | Alle Personen im Projekt, automatisch. |
| Editors | Mitglieder, die die Daten und Apps des Projekts aufbauen. Mitglieder können hinzugefügt und entfernt werden. |
| Zeit AI | Mitarbeitende von Zeit AI im Projekt, automatisch. Für Support und Einrichtung. |
Beides verwalten Sie unter Project settings → Access → Members and groups. Jede Zeile zeigt die eigenen Rollen der Person oder Gruppe im Projekt. Hat sie keine eigenen, wird angezeigt, was sie über ihre Gruppen erhält, z. B. „Viewer via groups“.
Rollen
Sie vergeben eine Rolle an ein Mitglied oder eine Gruppe auf einer Ressource: dem ganzen Projekt, einem Ordner oder einer einzelnen Tabelle, Datei, App oder Datenquelle.
| Rolle | Ansehen | Änderungen auf einem Branch vorschlagen | Änderungen veröffentlichen | Zugriff verwalten |
|---|---|---|---|---|
| Viewer | ✓ | |||
| Proposer | ✓ | ✓ | ||
| Editor | ✓ | ✓ | ✓ | |
| Manager | ✓ | ✓ |
- Proposer kann nur auf dem ganzen Projekt vergeben werden. Proposer arbeiten auf einem Branch; ein Editor prüft und veröffentlicht ihre Änderungen.
- Manager betrifft den Zugriff, nicht die Inhalte. Eine IT-Administration kann so steuern, wer was sieht, ohne Daten ändern zu können. Wer bearbeiten und verwalten soll, erhält Editor und Manager zusammen.
- Rollen addieren sich. Eine Person erhält jede Rolle, die ihr direkt oder einer ihrer Gruppen (auch verschachtelt) gewährt wurde. Es gibt keine Verbote („Deny“-Einträge).
- Ein Manager kann überall dort Rollen vergeben, wo er Manager ist, kann sich aber seine eigenen Verwaltungsrechte auf einer Ressource nicht entziehen. So sperrt sich niemand versehentlich selbst aus.
Standardzugriff
Ein neues Projekt startet mit diesen Rollen auf dem Projekt:
| Gruppe | Rollen |
|---|---|
| Project Members | Proposer |
| Editors | Editor |
| Zeit AI | Editor, Manager |
Passen Sie sie unter Members and groups an. Entfernen Sie zum Beispiel Proposer bei Project Members und vergeben Sie stattdessen Viewer an einzelne Gruppen, sodass neue Mitglieder nichts sehen, bis sie einer Gruppe zugeordnet sind.
Vererbung
Ressourcen liegen im Ordnerbaum des Projekts. Eine Rolle auf einem Ordner gilt für alles darin, einschließlich Unterordnern in beliebiger Tiefe. Eine Rolle auf dem Projekt gilt für alles im Projekt.
- Verschieben einer Ressource in einen anderen Ordner ändert, was sie erbt.
- Vererbung unterbrechen: Öffnen Sie die Permissions einer Ressource und deaktivieren Sie Inherit from parent. Danach gelten nur noch die Rollen auf dieser Ressource selbst; alles darin erbt weiterhin von ihr. Nutzen Sie das für sensible Ordner wie Personal. Vergeben Sie vorher Manager direkt auf der Ressource an sich selbst oder eine Ihrer Gruppen: Projektweite Manager erreichen sie danach nicht mehr, und ZeitMind lehnt die Änderung ab, wenn Sie dadurch Ihre eigenen Verwaltungsrechte verlieren würden.
- Abhängige Tabellen werden nicht einzeln freigegeben. Aus einer Datei extrahierte Tabellen folgen der Datei, Tabellen einer Analyse oder App folgen ihrem Besitzer.
Apps freigeben
Zugriff auf eine App gibt keinen Zugriff auf die Daten, die sie anzeigt. Wenn Sie eine App freigeben, vergeben Sie auch Viewer auf die Tabellen, die sie verwendet, über die Permissions der Tabelle oder eines Ordners, der sie enthält. Zeit AI sieht einen Hinweis bei Apps, deren Nutzer nicht alle Daten lesen können, und kann die fehlenden Rollen in einem Schritt ergänzen.
Row-Level Security (Zeilenfilter)
Rollen legen fest, welche Tabellen jemand lesen darf. Zeilenfilter legen fest, welche Zeilen einer Tabelle jemand sieht, z. B. nur die Kostenstellen, für die die Person verantwortlich ist.
Zeilenfilter setzt die Projektdatenbank durch, nicht nur die App. Jedes Mitglied fragt mit einer eigenen Datenbankrolle ab, und keine Mitgliederrolle kann Zeilenfilter umgehen, auch nicht die von Editors. Ein Fehler in der App kann daher keine Zeilen anzeigen, die die Datenbank verweigern würde.
Mitgliedsattribute
Jedes Mitglied kann benannte Attribute mit einem oder mehreren Werten tragen, gepflegt unter Members and groups:
| Mitglied | Attribut | Werte |
|---|---|---|
anna@example.com | Kostenstellen | 4711, 4712 |
anna@example.com | Länder | DE |
Gruppen haben keine Attribute. Würden Werte mehrerer Gruppen zusammengeführt, entstünden Kombinationen, die keine einzelne Gruppe hat. Um eine Gruppe einzuschränken, nutzen Sie stattdessen eine Member is-Bedingung (siehe unten).
Tabellenfilter
Öffnen Sie den Tab Security einer Tabelle und aktivieren Sie Filter rows. Ein Filter ist eine Liste von Policies:
- Eine Zeile ist sichtbar, wenn sie mindestens eine Policy erfüllt (ODER).
- Eine Policy ist erfüllt, wenn alle ihre Bedingungen zutreffen (UND).
| Bedingung | Trifft auf eine Zeile zu, wenn |
|---|---|
| Member attribute | der Wert der Spalte einer der Werte des Mitglieds für dieses Attribut ist |
| Fixed values | der Wert der Spalte einer der angegebenen Werte ist |
| Member is | die Person eines der angegebenen Mitglieder ist oder in einer der angegebenen Gruppen |
Beispiele:
| Ziel | Policies |
|---|---|
| Eigene Kostenstellen oder eigene Personalnummern | Kostenstelle ∈ Kostenstellen des Mitglieds oder Personalnr. ∈ Personalnummern des Mitglieds |
| Eigene Kostenstellen, nur in eigenen Ländern | Kostenstelle ∈ Kostenstellen des Mitglieds und Land ∈ Länder des Mitglieds |
| Admins sehen alle Zeilen | Member is Admins |
| Controlling sieht Kostenstelle 5 | Member is Controlling und Kostenstelle ∈ {5} |
Gut zu wissen:
- Kein Filter: Alle, die die Tabelle lesen dürfen, sehen alle Zeilen. Ein Filter ohne Policies: Niemand sieht eine Zeile.
- Ein Mitglied ohne das Attribut, das eine Bedingung abfragt, erfüllt diese Bedingung nicht. Attributnamen und Werte müssen exakt übereinstimmen; ein Tippfehler blendet Zeilen stillschweigend aus.
- Bei bearbeitbaren Tabellen begrenzt derselbe Filter auch, welche Zeilen ein Mitglied hinzufügen, ändern oder löschen kann.
- Änderungen an Mitgliedsattributen gelten ab der nächsten Abfrage. Änderungen an Rollen, Gruppen und Tabellenfiltern werden im Hintergrund auf die Datenbank übertragen, meist innerhalb von Sekunden; bis dahin gelten noch die bisherigen Regeln.
- Die App übergibt Attribute und Gruppen jedes Mitglieds als kurzlebiges Token an die Datenbank, signiert mit einem projektspezifischen Schlüssel. Die Datenbank prüft die Signatur, bevor sie einen Filter anwendet, sodass die Werte nicht aus dem Browser gefälscht werden können.