Dateiinhalte schützen

Die Google Drive API unterstützt verschiedene Möglichkeiten, die Dateiänderung zu verhindern, einschließlich der Einschränkung von Dateiinhalten und der Deaktivierung 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 folgenden Aktionen zu hindern:

  • 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 mit Bearbeitungszugriff können zwar den Inhalt der Datei nicht ändern, aber andere Vorgänge sind basierend auf der Zugriffsebene zulässig. Ein Nutzer mit Bearbeitungszugriff kann beispielsweise Elemente 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. Für eine Datei oder einen Ordner in „Meine Ablage“ oder eine geteilte Ablage mit der Inhaltsbeschränkung ownerRestricted 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. 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 Besprechung mit vertraulichen Inhalten 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

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 können. Außerdem ist dies keine Möglichkeit, 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.

Durch eine Inhaltsbeschränkung für ein Element werden Änderungen am Titel und Inhalt verhindert, 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
  • Den gesamten Inhalt in Google Präsentationen 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 ein reason hinzu, um anzugeben, warum Sie die Einschränkung hinzufügen möchten, 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 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.

Inhaltsbeschränkung aufheben

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, gilt für die Datei keine Inhaltsbeschränkung mehr.

Sie können auch über die Drive-UI eine Inhaltsbeschränkung entfernen und das Bearbeiten 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 Inhaltsbeschränkung für Dateien innerhalb eines Dokuments.

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

Wenn Sie den Beispielcode ausführen, gilt für die Datei eine Einschränkung des Inhalts und kann nur von Dateieigentümern entfernt werden. Wenn Sie der Dateieigentümer sind, wird neben dem Dateinamen auf der Drive-Benutzeroberfläche (UI) ein aktives Schloss-Symbol () 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 Inhaltsbeschrä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, Google Docs, Google Tabellen und Google 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.