Dateiinhalte schützen

Die Google Drive API unterstützt verschiedene Möglichkeiten, die Dateiänderung zu verhindern, z. B. die Einschränkung von Dateiinhalten und das Verbot des Herunterladens, Druckens oder Kopierens von Dateien.

Dateien mit Drive-Inhaltsbeschränkungen schreibgeschützt machen

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

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

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

Damit ein Nutzer eine Inhaltsbeschränkung für eine Datei in Drive hinzufügen oder entfernen kann, benötigt er die zugehörigen Berechtigungen. Für eine Datei oder einen Ordner in „Meine Ablage“ oder in einer geteilten Ablage mit der capabilities.canModifyEditorContentRestriction muss Ihnen die role=writer zugewiesen sein. Wenn für eine Datei oder einen Ordner in „Meine Ablage“ oder in einer geteilten Ablage eine ownerRestricted-Einschränkung gilt, müssen Sie der Eigentümer der Datei sein oder role=organizer haben. Um sich einen Artikel mit einer Inhaltsbeschränkung anzusehen, müssen Nutzer mindestens role=reader Jahre alt sein. 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.

Sie können das boolesche Feld contentRestrictions.readOnly auf der Ressource files verwenden, um eine Inhaltsbeschränkung festzulegen. Hinweis: Wenn Sie eine Inhaltsbeschränkung für ein Element festlegen, wird die vorhandene überschrieben.

Szenarien für Inhaltsbeschränkungen

Eine Inhaltsbeschränkung für ein Drive-Element weist Nutzer darauf hin, dass die Inhalte nicht geändert werden dürfen. Das kann folgende Gründe haben:

  • Die Arbeit an einem Gruppendokument während der Überprüfung oder Prüfung pausieren
  • Festlegen eines endgültigen Status für ein Element, z. B. „Genehmigt“.
  • Änderungen während einer vertraulichen Videokonferenz verhindern
  • Externe Änderungen an Workflows, die von automatisierten Systemen verarbeitet werden, sind nicht zulässig.
  • Änderungen durch Google Apps Script- und Google Workspace-Add-ons einschränken
  • Verhindern von versehentlichen Änderungen an einem Dokument

Inhaltseinschrä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 können. Außerdem ist es nicht möglich, einen unveränderlichen Datensatz zu erstellen. Drive-Inhaltseinschränkungen können geändert werden. Eine Inhaltseinschränkung für ein Element ist also keine Garantie dafür, dass sich das Element nie ändert.

Dateien mit Inhaltseinschränkungen verwalten

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

Eine Inhaltsbeschränkung für ein Element verhindert Änderungen an Titel und Inhalt, darunter:

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

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

Inhaltsbeschränkung hinzufügen

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

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

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

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

Inhaltseinschränkung entfernen

Wenn Sie eine Einschränkung für Dateiinhalte entfernen möchten, verwenden Sie die Methode files.update und legen Sie das Feld contentRestrictions.readOnly auf false fest. Im folgenden Codebeispiel wird gezeigt, wie eine Inhaltsbeschränkung entfernt 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 das fileId der Datei, die Sie ändern möchten.

Wenn Sie den Beispielcode ausführen, sind die Inhalte der Datei nicht mehr eingeschränkt.

Sie können auch über die Drive-Benutzeroberfläche eine Inhaltsbeschränkung entfernen und die Bearbeitung von Inhalten zulassen, sofern Sie die entsprechenden Berechtigungen haben. Dazu gibt es zwei Möglichkeiten:

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

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

    Entfernen Sie eine Einschränkung für Dateiinhalte in einem Dokument.
    Abbildung 3: Entfernen Sie eine Dateiinhaltsbeschränkung in einem Dokument.

Inhaltsbeschränkung prüfen

Wenn du prüfen möchtest, ob eine Inhaltsbeschränkung vorliegt, verwende die Methode files.get mit dem zurückgegebenen Feld contentRestrictions. Im folgenden Codebeispiel wird gezeigt, wie der Status einer Inhaltsbeschrä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 das 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.

Inhaltseinschränkung hinzufügen, die nur der Dateiinhaber ändern kann

Wenn Sie eine Einschränkung für Dateiinhalte hinzufügen möchten, damit nur Dateiinhaber den Mechanismus aktivieren können, verwenden Sie die Methode files.update und legen Sie das boolesche Feld contentRestrictions.ownerRestricted auf true fest. Im folgenden Codebeispiel wird gezeigt, wie Sie eine Inhaltsbeschränkung nur für Dateiinhaber hinzufügen:

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

Wenn Sie den Beispielcode ausführen, ist die Datei aufgrund von Inhaltseinschränkungen nur für den Eigentümer der Datei sichtbar und kann nur von ihm entfernt werden. Wenn Sie der Eigentümer der Datei sind, wird in der Drive-Benutzeroberfläche neben dem Dateinamen ein aktives Schlosssymbol () angezeigt. Wenn Sie nicht der Eigentümer sind, ist das Schlosssymbol ausgegraut.

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

Funktionen für Inhaltsbeschränkungen

Eine files-Ressource enthält eine Reihe von booleschen capabilities-Feldern, die angeben, ob eine Aktion auf einer Datei ausgeführt werden kann.

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 Einschränkung für Inhaberinhalte hinzufügen oder ändern kann.
  • capabilities.canRemoveContentRestriction: Gibt an, ob der aktuelle Nutzer die angewendete Inhaltseinschränkung (falls vorhanden) entfernen kann.

Weitere Informationen finden Sie unter Funktionen.

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

Herunterladen, Drucken oder Kopieren von Dateien verhindern

Sie können einschränken, wie Nutzer mit den Berechtigungen role=commenter oder role=reader Dateien in Drive, Docs, Sheets 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 und legen Sie das boolesche Feld copyRequiresWriterPermission auf true fest.