Dateiinhalte schützen

Die Google Drive API unterstützt verschiedene Möglichkeiten, um Änderungen an Dateien zu verhindern, einschließlich Einschränkungen von Dateiinhalten und Verbot der Option zum Herunterladen, Drucken oder Kopieren von Dateien.

Dateien mit Drive-Inhaltsbeschränkungen schreibgeschützt machen

Sie können einer Google Drive-Datei eine Inhaltsbeschränkung hinzufügen, um Nutzer an Folgendem zu hindern:

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

Mit Inhaltsbeschränkungen können Sie den Inhalt eines Drive-Elements schreibgeschützt machen, ohne die Zugriffsberechtigungen des Elements zu ändern. Das bedeutet, dass es sich nicht um eine Zugriffsbeschränkung handelt. Nutzer können den Inhalt der Datei zwar nicht ändern, aber andere Vorgänge sind je nach Zugriffsebene weiterhin zulässig. Ein Nutzer mit Bearbeitungszugriff kann z. B. weiterhin ein Element verschieben oder seine Freigabeeinstellungen ändern.

Zum Hinzufügen oder Entfernen einer Inhaltsbeschränkung für eine Datei in Drive benötigen Nutzer die zugehörigen Berechtigungen. Für eine Datei oder einen Ordner in „Meine Ablage“ oder eine geteilte Ablage mit dem capabilities.canModifyEditorContentRestriction muss Ihnen role=writer zugewiesen sein. Für eine Datei oder einen Ordner in „Meine Ablage“ oder in einer geteilten Ablage mit der Inhaltsbeschränkung „ownerRestricted“ müssen Sie der Inhaber der Datei sein oder role=organizer haben. Damit Nutzer ein Element mit einer Inhaltsbeschränkung aufrufen können, müssen sie mindestens role=reader haben. Eine vollständige Liste der Rollen finden Sie unter Rollen und Berechtigungen. Informationen zum Ändern der Berechtigungen für eine Datei finden Sie unter Berechtigungen ändern.

Mit dem booleschen Feld contentRestrictions.readOnly für die Ressource files können Sie eine Inhaltseinschränkung festlegen. Beachten Sie, dass durch das Festlegen einer Inhaltsbeschränkung für ein Element die vorhandene Einschränkung überschrieben wird.

Szenarien für Inhaltsbeschränkungen

Eine Inhaltsbeschränkung für ein Drive-Element signalisiert Nutzern, dass der Inhalt nicht geändert werden sollte. Dies kann folgende Gründe haben:

  • Die Arbeit an einem gemeinsamen Dokument während der Überprüfungs- oder Prüfungsphasen pausieren
  • Festlegen eines Elements auf den Status „Abgeschlossen“, z. B. „Genehmigt“
  • Änderungen während einer Besprechung mit vertraulichen Inhalten verhindern
  • Verbot externer Änderungen an Workflows, die von automatisierten Systemen verarbeitet werden.
  • Bearbeitungen 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 jedoch nicht verhindern, dass Nutzer mit ausreichenden Berechtigungen weiter an einem Element arbeiten. Außerdem ist es keine Möglichkeit, einen unveränderlichen Datensatz zu erstellen. Inhaltsbeschränkungen in Google Drive sind änderbar. Eine Inhaltsbeschränkung für ein Element garantiert also nicht, dass sich das Element nie ändert.

Dateien mit Inhaltsbeschränkungen verwalten

Google-Dokumente, Google-Tabellen und Google-Präsentationen sowie alle anderen Dateien können Inhaltsbeschränkungen enthalten.

Durch eine Inhaltsbeschränkung für ein Element werden Änderungen am Titel und Inhalt verhindert. Dazu gehören:

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

Bestimmte Dateitypen dürfen keine Inhaltsbeschränkungen enthalten. Hier einige Beispiele:

Inhaltsbeschränkung hinzufügen

Verwenden Sie zum Hinzufügen einer Einschränkung von Dateiinhalten die Methode files.update, wobei das Feld contentRestrictions.readOnly auf true festgelegt ist. Fügen Sie optional eine reason hinzu, um anzugeben, warum Sie die Einschränkung hinzufügen, z. B. „Abgeschlossener Vertrag“. Das folgende Codebeispiel zeigt, wie Sie eine Inhaltseinschrä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 den fileId der Datei, die Sie ändern möchten.

Wenn Sie den Beispielcode ausführen, gelten für die Datei inhaltliche Einschränkungen und neben dem Dateinamen wird auf der Google Drive-Benutzeroberfläche (UI) ein Schlosssymbol () angezeigt. Die Datei ist jetzt schreibgeschützt.

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

Inhaltsbeschränkung entfernen

Wenn Sie eine Einschränkung von Dateiinhalten aufheben möchten, verwenden Sie die Methode files.update und setzen Sie das Feld contentRestrictions.readOnly auf false. Das folgende Codebeispiel zeigt, wie eine Inhaltsbeschränkung aufgehoben wird:

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 den fileId der Datei, die Sie ändern möchten.

Wenn Sie den Beispielcode ausführen, hat die Datei keine Inhaltsbeschränkung mehr.

Außerdem können Sie über die Drive-UI eine Inhaltsbeschränkung aufheben und das Bearbeiten von Inhalten zulassen (sofern Sie die entsprechenden Berechtigungen haben). Dafür gibt es zwei Möglichkeiten:

  1. Klicken Sie in Drive mit der rechten Maustaste auf die Datei mit einer Inhaltsbeschränkung und wählen Sie entsperren aus.

    Inhaltsbeschränkung für Dateien in einer Drive-Dateiliste aufheben.
    Abbildung 2. Inhaltsbeschränkung für Dateien in einer Drive-Dateiliste aufheben.
  2. Öffnen Sie die Datei mit einer Inhaltsbeschränkung und klicken Sie auf (Sperrmodus) > Datei entsperren.

    Inhaltsbeschränkung für Dateien in einem Dokument entfernen
    Abbildung 3: Inhaltsbeschränkungen für Dateien in einem Dokument entfernen.

Auf Inhaltsbeschränkungen prüfen

Verwenden Sie die Methode files.get mit dem zurückgegebenen Feld contentRestrictions, um nach einer Inhaltseinschränkung zu suchen. Das folgende Codebeispiel zeigt, wie der Status einer Inhaltseinschränkung geprüft wird:

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 den 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änkungen hinzufügen, die nur der Dateieigentümer ändern kann

Wenn Sie eine Einschränkung für Dateiinhalte hinzufügen möchten, sodass nur Dateieigentümer den Mechanismus ein-/ausschalten können, verwenden Sie die Methode files.update. Setzen Sie dabei das boolesche Feld contentRestrictions.ownerRestricted auf true. Das folgende Codebeispiel zeigt, wie eine Inhaltseinschränkung nur für Dateiinhaber hinzugefügt wird:

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 den fileId der Datei, die Sie ändern möchten.

Wenn Sie den Beispielcode ausführen, ist die Datei inhaltsbeschränkt und nur Dateieigentümer können sie entfernen. Wenn Sie der Eigentümer der Datei sind, wird auf der Google Drive-Benutzeroberfläche (UI) neben dem Dateinamen ein aktives Sperrsymbol () angezeigt. Wenn Sie nicht der Eigentümer sind, ist das Schloss-Symbol abgeblendet.

Verwenden Sie zum Entfernen des Flags ownerRestricted die Methode files.update. Das Feld contentRestrictions.ownerRestricted muss dabei auf false gesetzt sein.

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.

Die Inhaltsbeschränkungen enthalten die folgenden capabilities:

  • capabilities.canModifyEditorContentRestriction: Gibt an, ob der aktuelle Nutzer eine Inhaltseinschränkung hinzufügen oder ändern kann.
  • capabilities.canModifyOwnerContentRestriction: Gibt an, ob der aktuelle Nutzer eine Inhaltsbeschränkung für Inhaber hinzufü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 Funktionen.

Ein Beispiel zum Abrufen der Datei capabilities finden Sie unter Nutzerberechtigungen prüfen.

Verhindern, dass Nutzer Dateien herunterladen, drucken oder kopieren

Sie können einschränken, wie Nutzer mit der Berechtigung role=commenter oder role=reader Dateien in Drive, Docs, Tabellen und Präsentationen herunterladen, drucken und kopieren können.

Wenn Sie die Optionen zum Herunterladen, Drucken und Kopieren von Dateien entfernen möchten, verwenden Sie die Methode files.update. Setzen Sie dabei das boolesche Feld copyRequiresWriterPermission auf true.