ich möchte gerne pro Datenfeld konfigurieren, wer dieses Datenfeld ansehen / ändern / etc. kann. Soweit ich das erkennen kann, ist das (zumindest mit CiviCRM auf Drupal-Basis) nur für custom fields möglich, nicht aber für native Datenfelder. Und ich kann beschränken, wer auf welche Kontakte Zugriff hat, aber immer nur für den kompletten Kontakt und nicht pro Datenfeld.
Ist das richtig, oder habe ich etwas übersehen?
Das ist insbesondere relevant, um den Zugriff auf die Änderungshistorie zu beschränken. Andernfalls haben wir ein Thema sowohl mit Datenschutz als auch mit Verhaltens- und Leistungskontrolle.
Update: Und ich kann (zumindest in Drupal) für ganze CiviCRM-Bereiche (z. B. Zuwendungen) die Berechtigungen setzen per Drupal-Berechtigung. Auch das löst aber nicht mein Problem.
In der Tat kann der Zugriff auf einzelne „native“ Felder nicht so elegant eingeschränkt werden wie bei custom fields.
Mein Lösungsansatz wäre, die fraglichen Daten tatsächlich nicht in Core Felder zu speichern, sondern dafür analoge custom fields anzulegen. Die entsprechenden nativen Felder würde ich aus der Zusammenfassungs-Seite dann mithilfe der Extension Contact Layout Editor herausnehmen.
Was die Änderungshistorie betrifft: Die ist in der Tat in mancherlei Hinsicht problematisch - u.a. in puncto Datenschutz (gelöschte Daten wie z.B. „geheime Telefonnummer“ bleiben dort sichtbar) oder auch in puncto Leistungskontrolle.
Gegen diese Problem hilft es auch nur bedingt, wenn nicht jede·r Nutzer·in die Daten aufrufen kann - eine nachhaltige Lösung ist nur erreichbar, wenn die Daten gar nicht erst gespeichert werden.
Ich rate daher generell zur Zurückhaltung bei der Nutzung des erweiterten Loggings.
Zur Ergänzung: Die Berechtigungen für ganze Bereiche (z.B. Zuwendungen/CiviContribute) können nicht nur für Drupal-, sondern auch für WordPress-, Joomla- und Standalone-CiviCRMs in gleicher Weise eingestellt werden.