Frage:
Wie kann man sicherstellen, dass Ordnerrechte in zwei Datenbanken oder für verschiedene Gruppen in verschiedenen Ordnern exakt gleich gesetzt sind?
Antwort:
Schnell und verlässlich lassen sich Gruppen-Ordnerberechtigungen in der Administration nicht vergleichen, da in der Vielzahl der Berechtigungen (Häkchen in der Administration) leicht ein Unterschied übersehen wird.
Ein guter Weg ist die Abfrage der Berechtigungen in der Datenbank mit der nachstehenden Abfrage:
SELECT Groups.GroupID,
Groups.Groupname,
Groups.Description as GroupDescription,
Projects.Name as Ordnername,
Projects.Path ,
GroupRights.Type as PermissionValue
FROM Groups INNER JOIN
GroupRights ON Groups.GroupID = GroupRights.GroupID INNER JOIN
Projects ON GroupRights.ProjectID = Projects.ProjectID
order by Groupname
Exemplarisch sieht das Abfrageergebnis folgendermaßen im SQL Management Studio aus:
Hier ist z. B. gut zu erkennen, dass die Gruppe „Projekte“ in den beiden Verzeichnissen „Holz“ und „Normteile“ exakt gleiche Ordnerrechte hat.
Dieses Vorgehen ist insbesondere gut zu verwenden, wenn eine Datenbank (nach Auslieferung durch DPS-Mitarbeiter oder als separate Testumgebung) als leere Datenbank erstellt und per .cex-Datei mit Anpassungen befüllt worden ist.
Im Übrigen ist der abstrakte Werte „PermissionValue“ exakt der Zahlenwert, über den per API die Rechte am Ordner gesetzt werden können.