Dateiinhalte schützen

Die Google Drive API bietet verschiedene Möglichkeiten, die Änderung von Dateien zu verhindern, darunter die Einschränkung von Dateiinhalten und das Deaktivieren der Option zum Herunterladen, Drucken oder Kopieren von Dateien.

Dateien mit Google Drive-Inhaltsbeschränkungen schreibschützen

Sie können einer Google Drive-Datei eine Inhaltsbeschränkung hinzufügen, um zu verhindern, dass Nutzer Folgendes tun:

  • Den Titel ändern
  • Inhalte bearbeiten
  • Eine Überarbeitung hochladen
  • Kommentare hinzufügen oder bearbeiten

Eine Inhaltsbeschränkung ist keine Zugriffsbeschränkung. Nutzer können den Inhalt der Datei zwar nicht ändern, andere Vorgänge sind jedoch weiterhin zulässig, je nach ihrer Zugriffsebene. Ein Nutzer mit Bearbeitungszugriff kann beispielsweise ein Element verschieben oder die Freigabeeinstellungen ändern.

Wenn ein Nutzer einer Datei in Google Drive eine Inhaltsbeschränkung hinzufügen oder entfernen möchte, muss er die entsprechenden permissions haben. Für eine Datei oder einen Ordner in „Meine Ablage“ oder in einer geteilten Ablage mit der capabilities.canModifyEditorContentRestriction muss ihm role=writer zugewiesen sein. Für eine Datei oder einen Ordner in „Meine Ablage“ oder in einer geteilten Ablage mit einer ownerRestricted-Inhaltsbeschränkung muss er der Eigentümer der Datei sein oder role=organizer haben. Wenn Nutzer ein Element mit einer Inhaltsbeschränkung ansehen möchten, müssen sie role=reader oder höher haben. Eine vollständige Liste der Rollen finden Sie unter Rollen und Berechtigungen. Informationen zum Aktualisieren der Berechtigungen für eine Datei finden Sie unter Berechtigungen aktualisieren.

Sie können das boolesche Feld contentRestrictions.readOnly für die Ressource files verwenden, um eine Inhalts beschränkung festzulegen. Beachten Sie, dass das Festlegen einer Inhaltsbeschränkung für ein Element die vorhandene überschreibt.

Szenarien für Inhaltsbeschränkungen

Eine Inhaltsbeschränkung für ein Google Drive-Element signalisiert Nutzern, dass die Inhalte nicht geändert werden sollten. Das kann folgende Gründe haben:

  • Die Arbeit an einem Dokument für die Zusammenarbeit während Überprüfungs- oder Auditzeiträumen pausieren
  • Ein Element auf einen endgültigen Status setzen, z. B. „Genehmigt“
  • Änderungen während einer vertraulichen Besprechung verhindern
  • Externe Änderungen für Workflows verbieten, die von automatisierten Systemen verarbeitet werden
  • Änderungen durch Google Apps Script und Google Workspace-Add-ons einschränken
  • Versehentliche Änderungen an einem Dokument vermeiden

Inhaltsbeschränkungen können zwar bei der Verwaltung von Inhalten helfen, sie sollen aber nicht verhindern, dass Nutzer mit ausreichenden Berechtigungen weiterhin an einem Element arbeiten. Außerdem sind sie keine Möglichkeit, einen unveränderlichen Datensatz zu erstellen. Google Drive-Inhaltsbeschränkungen sind veränderlich. Eine Inhaltsbeschränkung für ein Element garantiert also nicht, dass sich das Element nie ändert.

Dateien mit Inhaltsbeschränkungen verwalten

Google Docs, Google Sheets und Google Präsentationen sowie alle anderen Dateien können Inhaltsbeschränkungen enthalten.

Eine Inhaltsbeschränkung für ein Element verhindert Änderungen am Titel und Inhalt, einschließlich:

  • Kommentare und Vorschläge (in Google Docs, Google Sheets, Google Präsentationen und Binärdateien)
  • Überarbeitungen einer Binärdatei
  • Text und Formatierung in Google Docs
  • Text oder Formeln in Google Sheets, ein Google Sheets-Layout und Instanzen in Google Sheets
  • Alle Inhalte in Google Präsentationen sowie die Reihenfolge und Anzahl der Folien

Bestimmte Dateitypen können keine Inhaltsbeschränkung enthalten. Einige Beispiele:

Inhaltsbeschränkung hinzufügen

Wenn Sie eine Inhaltsbeschränkung für eine Datei hinzufügen möchten, verwenden Sie die files.update Methode und setzen Sie das contentRestrictions.readOnly Feld auf true. Fügen Sie optional einen reason hinzu, warum Sie die Einschränkung hinzufügen, z. B. „Abgeschlossener Vertrag“. Das folgende Codebeispiel zeigt, wie Sie eine Inhaltsbeschränkung hinzufügen:

Java

File updatedFile =
  new File()
      .setContentRestrictions(
          ImmutableList.of(new ContentRestriction().setReadOnly(true).setReason("Finalized contract."));

File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();

Python

content_restriction = {'readOnly': True, 'reason':'Finalized contract.'}

response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();

Node.js

/**
* Set a content restriction on a file.
* @return{obj} updated file
**/
async function addContentRestriction() {
  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app

  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
  const service = google.drive({version: 'v3', auth});
  const contentRestriction = {
    'readOnly': True,
    'reason': 'Finalized contract.',
  };
  const updatedFile = {
    'contentRestrictions': [contentRestriction],
  };
  try {
    const response = await service.files.update({
      fileId: 'FILE_ID',
      resource: updatedFile,
      fields: 'contentRestrictions',
    });
    return response;
  } catch (err) {
    // TODO (developer) - Handle error
    throw err;
  }
}

Ersetzen Sie FILE_ID durch die fileId der Datei, die Sie ändern möchten.

Wenn Sie den Beispielcode ausführen, wird der Inhalt der Datei eingeschränkt und neben dem Dateinamen wird in der Google Drive-Benutzeroberfläche (UI) ein Schlosssymbol () angezeigt. Die Datei ist jetzt schreibgeschützt.

Eine Datei mit einer Inhaltsbeschränkung in einer Google Drive-Dateiliste.
Abbildung 1. Eine Datei mit einer Inhaltsbeschränkung in einer Google Drive-Dateiliste.

Inhaltsbeschränkung entfernen

Wenn Sie eine Inhaltsbeschränkung für eine Datei entfernen möchten, verwenden Sie die Methode files.update und setzen Sie das Feld contentRestrictions.readOnly auf false. Das folgende Codebeispiel zeigt, wie Sie eine Inhaltsbeschränkung entfernen:

Java

File updatedFile =
new File()
    .setContentRestrictions(
        ImmutableList.of(new ContentRestriction().setReadOnly(false));

File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();

Python

content_restriction = {'readOnly': False}

response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();

Node.js

/**
* Remove a content restriction on a file.
* @return{obj} updated file
**/
async function removeContentRestriction() {
  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app

  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
  const service = google.drive({version: 'v3', auth});
  const contentRestriction = {
    'readOnly': False,
  };
  const updatedFile = {
    'contentRestrictions': [contentRestriction],
  };
  try {
    const response = await service.files.update({
      fileId: 'FILE_ID',
      resource: updatedFile,
      fields: 'contentRestrictions',
    });
    return response;
  } catch (err) {
    // TODO (developer) - Handle error
    throw err;
  }
}

Ersetzen Sie FILE_ID durch die fileId der Datei, die Sie ändern möchten.

Wenn Sie den Beispielcode ausführen, wird die Inhaltsbeschränkung für die Datei entfernt.

Sie können auch die Google Drive-Benutzeroberfläche verwenden, um eine Inhaltsbeschränkung zu entfernen und die Bearbeitung von Inhalten zuzulassen (vorausgesetzt, Sie haben die entsprechenden Berechtigungen). Dazu haben Sie zwei Möglichkeiten:

  1. Klicken Sie in Google Drive mit der rechten Maustaste auf die Datei mit einer Inhaltsbeschränkung und klicken Sie auf Entsperren .

    Einschränkungen für Dateiinhalte in einer Google Drive-Dateiliste entfernen
    Abbildung 2. Inhaltsbeschränkung für eine Datei in einer Google Drive-Dateiliste entfernen.
  2. Öffnen Sie die Datei mit einer Inhaltsbeschränkung und klicken Sie auf (Sperrmodus) > Datei entsperren.

    Entfernen Sie eine Einschränkung für Dateiinhalte in einem Dokument.
    Abbildung 3. Inhaltsbeschränkung für eine Datei in einem Dokument entfernen.

Auf Inhaltsbeschränkungen prüfen

Wenn Sie auf eine Inhaltsbeschränkung prüfen möchten, verwenden Sie die files.get Methode mit dem contentRestrictions zurückgegebenen Feld. Das folgende Codebeispiel zeigt, wie Sie den Status einer Inhaltsbeschränkung prüfen:

Java

File response = driveService.files().get("FILE_ID").setFields("contentRestrictions").execute();

Python

response = drive_service.files().get(fileId="FILE_ID", fields = "contentRestrictions").execute();

Node.js

/**
* Get content restrictions on a file.
* @return{obj} updated file
**/
async function fetchContentRestrictions() {
  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app

  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
  const service = google.drive({version: 'v3', auth});
  try {
    const response = await service.files.get({
      fileId: 'FILE_ID',
      fields: 'contentRestrictions',
    });
    return response;
  } catch (err) {
    // TODO (developer) - Handle error
    throw err;
  }
}

Ersetzen Sie FILE_ID durch die fileId der Datei, die Sie prüfen möchten.

Wenn Sie den Beispielcode ausführen, gibt die Methode eine ContentRestriction-Ressource zurück, falls vorhanden.

Inhaltsbeschränkung hinzufügen, die nur vom Eigentümer der Datei geändert werden kann

Wenn Sie eine Inhaltsbeschränkung für eine Datei hinzufügen möchten, sodass nur Eigentümer der Datei den Mechanismus aktivieren oder deaktivieren können, verwenden Sie die Methode files.update und setzen Sie das boolesche Feld contentRestrictions.ownerRestricted auf true. Das folgende Codebeispiel zeigt, wie Sie eine Inhaltsbeschränkung hinzufügen, die nur für Eigentümer der Datei gilt:

Java

File updatedFile =
  new File()
      .setContentRestrictions(
          ImmutableList.of(new ContentRestriction().setReadOnly(true).setOwnerRestricted(true).setReason("Finalized contract."));

File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();

Python

content_restriction = {'readOnly': True, 'ownerRestricted': True, 'reason':'Finalized contract.'}

response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();

Node.js

/**
* Set an owner restricted content restriction on a file.
* @return{obj} updated file
**/
async function addOwnerRestrictedContentRestriction() {
  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app

  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
  const service = google.drive({version: 'v3', auth});
  const contentRestriction = {
    'readOnly': True,
    'ownerRestricted': True,
    'reason': 'Finalized contract.',
  };
  const updatedFile = {
    'contentRestrictions': [contentRestriction],
  };
  try {
    const response = await service.files.update({
      fileId: 'FILE_ID',
      resource: updatedFile,
      fields: 'contentRestrictions',
    });
    return response;
  } catch (err) {
    // TODO (developer) - Handle error
    throw err;
  }
}

Ersetzen Sie FILE_ID durch die fileId der Datei, die Sie ändern möchten.

Wenn Sie den Beispielcode ausführen, wird der Inhalt der Datei eingeschränkt und nur Eigentümer der Datei können die Einschränkung entfernen. Wenn Sie der Eigentümer der Datei sind, wird neben dem Dateinamen in der Google Drive-Benutzeroberfläche (UI) ein aktives Schlosssymbol () angezeigt. Wenn Sie nicht der Eigentümer sind, ist das Schlosssymbol ausgegraut.

Wenn Sie das ownerRestricted Flag entfernen möchten, verwenden Sie die files.update Methode und setzen Sie das contentRestrictions.ownerRestricted Feld auf false.

Funktionen für Inhaltsbeschränkungen

Eine files-Ressource enthält eine Sammlung boolescher capabilities-Felder, die angeben, ob eine Aktion für eine Datei ausgeführt werden kann.

Inhaltsbeschränkungen enthalten die folgenden capabilities:

  • capabilities.canModifyEditorContentRestriction: Gibt an, ob der aktuelle Nutzer eine Inhaltsbeschränkunghinzufügen oder ändern kann.
  • capabilities.canModifyOwnerContentRestriction: Gibt an, ob der aktuelle Nutzer eine Inhaltsbeschränkung für den Eigentümerhinzufügen oder ändern kann.
  • capabilities.canRemoveContentRestriction: Gibt an, ob der aktuelle Nutzer die angewendete Inhaltsbeschränkung entfernen kann (falls vorhanden).

Weitere Informationen finden Sie unter Informationen zu Dateifunktionen.

Ein Beispiel für das Abrufen von Dateien capabilities finden Sie unter Dateifunktionen abrufen.

Verhindern, dass Nutzer Ihre Datei herunterladen, drucken oder kopieren

Sie können einschränken, wie Nutzer Dateien in Google Drive, Google Docs, Google Sheets und Google Präsentationen herunterladen, drucken und kopieren können.

Prüfen Sie das capabilities.canChangeItemDownloadRestriction boolesche Feld, um festzustellen, ob der Nutzer vom Eigentümer oder Organisator angewendete Download einschränkungen für eine Datei ändern kann. Wenn capabilities.canChangeItemDownloadRestriction auf true gesetzt ist, können Downloadeinschränkungen auf die Datei angewendet werden. Weitere Informationen finden Sie unter Informationen zu Dateifunktionen.

Wenn Sie Downloadeinschränkungen auf eine Datei anwenden möchten, legen Sie das downloadRestrictions Feld mit der files.update Methode fest. Sie können das Feld mit dem DownloadRestrictionsMetadata Objekt festlegen.

Das Objekt DownloadRestrictionsMetadata hat zwei Felder: itemDownloadRestriction und effectiveDownloadRestrictionWithContext. Beide Felder sind lesbar, aber nur itemDownloadRestriction kann festgelegt werden. Das itemDownloadRestriction Feld gibt ein DownloadRestriction Objekt zurück. Das Objekt DownloadRestriction hat zwei separate boolesche Felder: restrictedForReaders und restrictedForWriters.

Wenn Sie das Feld itemDownloadRestriction festlegen, wird die Downloadeinschränkung der Datei direkt vom Eigentümer oder Organisator angewendet. Einstellungen für geteilte Ablagen oder Regeln zum Schutz vor Datenverlust (Data Loss Prevention, DLP) werden dabei nicht berücksichtigt. Weitere Informationen finden Sie unter Informationen zum Schutz vor Datenverlust.

Wenn Sie das Feld itemDownloadRestriction aktualisieren, indem Sie das Feld restrictedForWriters auf true setzen, bedeutet das, dass restrictedForReaders auf true gesetzt ist. Wenn Sie restrictedForWriters auf true und restrictedForReaders auf false setzen, ist das dasselbe, als wenn Sie sowohl restrictedForWriters als auch restrictedForReaders auf true setzen.

Für das Feld effectiveDownloadRestrictionWithContext wird die Downloadeinschränkung auf die Datei angewendet und alle Einschränkungseinstellungen und DLP-Regeln werden berücksichtigt.

Das Feld effectiveDownloadRestrictionWithContext kann entweder auf restrictedForWriters oder restrictedForReaders gesetzt werden. Wenn es Einschränkungen für das Herunterladen oder Kopieren für die entsprechenden Rollen aus den Dateieinstellungen, den Einstellungen für geteilte Ablagen oder den DLP-Regeln gibt (einschließlich derjenigen mit Kontext), wird der Wert auf true gesetzt, andernfalls auf false.

Abwärtskompatibilität

Wir empfehlen, das DownloadRestriction Objekt zu verwenden, um festzulegen, wie Nutzer Dateien herunterladen, drucken und kopieren können.

Wenn Sie das copyRequiresWriterPermission boolesche Feld verwenden möchten, funktioniert es beim Lesen und Schreiben anders.

Der abgerufene Wert des Felds copyRequiresWriterPermission gibt an, ob Nutzer mit der Berechtigung role=commenter oder role=reader Dateien in Google Drive herunterladen, drucken oder kopieren können. Der Feldwert spiegelt die Kombination aus Dateieinstellungen, Einstellungen für geteilte Ablagen oder DLP-Regeln wider. Die Kontextauswertung für DLP-Regeln ist jedoch nicht enthalten.

Wenn Sie das Feld copyRequiresWriterPermission auf false setzen, werden sowohl die Felder restrictedForWriters als auch restrictedForReaders auf false gesetzt. Das bedeutet, dass die Einschränkungen für das Herunterladen oder Kopieren für alle Nutzer entfernt werden.

Felder, die die Funktionen zum Herunterladen, Drucken und Kopieren steuern

In der folgenden Tabelle sind die Felder der Ressource files aufgeführt, die sich auf die Funktionen zum Herunterladen, Drucken und Kopieren auswirken:

Feld Beschreibung Version
capabilities.canCopy Gibt an, ob der aktuelle Nutzer eine Datei kopieren kann. v2 und v3
capabilities.canDownload Gibt an, ob der aktuelle Nutzer eine Datei herunterladen kann. v2 und v3
capabilities.canChangeCopyRequiresWriterPermission Gibt an, ob der aktuelle Nutzer die Einschränkung copyRequiresWriterPermission einer Datei ändern kann. v2 und v3
capabilities.canChangeItemDownloadRestriction Gibt an, ob der aktuelle Nutzer die Downloadeinschränkung einer Datei ändern kann. Nur v3
copyRequiresWriterPermission Gibt an, ob die Optionen zum Kopieren, Drucken oder Herunterladen dieser Datei für Nutzer mit Lese- und Kommentierzugriff deaktiviert werden sollen. v2 und v3
downloadRestrictions Die auf eine Datei angewendeten Downloadeinschränkungen. Nur v3