Änderungsprotokoll (Übersicht)
Letzte Änderung: Mittwoch, 29. Juli 2009
Gilt für: SharePoint Foundation 2010
Inhalt dieses Artikels
Funktionalität des Änderungsprotokolls
Beibehaltung des Änderungsprotokolls
Sicherheit des Änderungsprotokolls
Änderungsprotokoll-API
Das Änderungsprotokoll ist keine irgendwo im Dateisystem gespeicherte Flatfile und auch kein einzelnes Protokoll. Jede Inhaltsdatenbank enthält eine EventCache-Tabelle, die das "Änderungsprotokoll" für in der Datenbank enthaltene Objekte darstellt. Jede Zeile in der Tabelle repräsentiert einen Eintrag im Protokoll. Die Spalten in der Tabelle enthalten Informationen wie z. B. das Datum und die Uhrzeit einer Änderung, den geänderten Objekttyp, die Art der Änderung und einen eindeutigen Bezeichner für das Objekt.
Das Änderungsprotokoll ist nicht über die Benutzeroberfläche verfügbar. Sie könnten zwar auf das Protokoll zugreifen, indem Sie die Datenbank direkt abfragen, aber diese Zugriffsmethode wird nicht unterstützt und ist ohnehin ziemlich überflüssig. SharePoint Foundation weist ein umfangreiches Objektmodell auf, das den Zugriff auf Änderungen auf der Listen-, Website-, Websitesammlungs- und Inhaltsdatenbankebene ermöglicht.
Funktionalität des Änderungsprotokolls
Im Änderungsprotokoll werden Änderungen an den folgenden Objekttypen aufgezeichnet:
Elemente, Dateien und Ordner
Listenmetadaten
Websitemetadaten
Sicherheitsrichtlinien, Benutzer und Gruppen
Im Änderungsprotokoll werden Änderungen an den folgenden Einstellungen oder Objekten nicht aufgezeichnet:
Webanwendungskonfiguration
Globale Administrationseinstellungen
Binäre Bereitstellung
Webparts und sichere Steuerelemente
Website-, Websitesammlungs-, Inhaltsdatenbank- oder Webanwendungskonfiguration
Das Änderungsprotokoll enthält Informationen zu den folgenden Arten von Änderungen:
Hinzufügen
Aktualisieren
Löschen
Umbenennen
Navigieren weg von einer Quellliste
Navigieren zu einer Zielliste
Auf das Änderungsprotokoll kann in den folgenden, stufenweise inklusiven Bereichen zugegriffen werden:
Liste
Website
Websitesammlung
Inhaltsdatenbank
Beibehaltung des Änderungsprotokolls
Einträge im Änderungsprotokoll laufen standardmäßig nach 60 Tagen ab. Abgelaufene Einträge werden von einem Zeitgeberauftrag regelmäßig gelöscht. Sie können die Beibehaltungsdauer auf der Webanwendungsebene durch Festlegen der ChangeLogRetentionPeriod-Eigenschaft deaktivieren. Die Änderungsprotokolleinschränkung insgesamt kann durch Festlegen der ChangeLogExpirationEnabled-Eigenschaft deaktiviert werden.
Sicherheit des Änderungsprotokolls
Die Sicherheit des Änderungsprotokoll wird nicht basierend auf den Zugriffsechten des Aufrufers optimiert. Stattdessen wird die unbefugte Weitergabe von Informationen vermieden, indem nur die Informationen protokolliert werden, die zum Identifizieren des geänderten Objekts und der Art der Änderung benötigt werden. Ein Aufrufer kann sich mithilfe der Informationen im Änderungsprotokoll Zugriff auf ein geändertes Objekt verschaffen, aber dieser Zugriff unterliegt den üblichen Sicherheitsprüfungen. Wenn der Aufrufer nicht über die erforderlichen Zugriffsrechte verfügt, wird der Zugriff auf das Objekt verweigert.
Änderungsprotokoll-API
Für den Zugriff auf das Änderungsprotokoll können Sie die GetChanges-Methode eines SPList-, SPWeb-, SPSite- oder SPContentDatabase-Objekts aufrufen. Diese Methode gibt ein SPChangeCollection-Objekt mit den Änderungen zurück, die in einem bestimmten Zeitraum aufgetreten sind. Anschließend können Sie die Sammlung aufzählen und alle Member einzeln untersuchen.
Jedes Objekt in der SPChangeCollection, das von der GetChanges-Methode zurückgegeben wird, ist eine Unterklasse der SPChange-Klasse. Die Eigenschaften der übergeordneten SPChange-Klasse enthalten grundlegende Informationen zu einer Änderung, einschließlich des Änderungstyps gemäß der ChangeType-Eigenschaft, der Uhrzeit der Änderung gemäß der Time-Eigenschaft und der ID der Websitesammlung, in der die Änderung vorgenommen wurde, gemäß der SiteId-Eigenschaft. Die Eigenschaften der Unterklassen von SPChange enthalten Informationen speziell zum geänderten Objekttyp. Beispielsweise repräsentiert die SPChangeItem-Klasse eine Änderung an einem SPListItem-Objekt und weist deshalb eine ListId-Eigenschaft zur Identifizierung der Liste auf, in der das Element geändert wurde. Entsprechend repräsentiert die SPChangeList-Klasse eine Änderung an einer Liste und weist eine WebId-Eigenschaft zur Identifizierung der Website auf, in der die Liste geändert wurde.