REVOKE (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Entfernt eine zuvor erteilte oder verweigerte Berechtigung.

Transact-SQL-Syntaxkonventionen

Syntax

Syntax für SQL Server-, Azure SQL-Datenbank- und Fabric SQL-Datenbank

-- Simplified syntax for REVOKE  
REVOKE [ GRANT OPTION FOR ]  
      {   
        [ ALL [ PRIVILEGES ] ]  
        |  
                permission [ ( column [ ,...n ] ) ] [ ,...n ]  
      }  
      [ ON [ class :: ] securable ]   
      { TO | FROM } principal [ ,...n ]   
      [ CASCADE] [ AS principal ]  

Syntax für Azure Synapse Analytics, Parallel Data Warehouse und Microsoft Fabric Warehouse

REVOKE
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    [ FROM | TO ] principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class_type> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Arguments

GRANT OPTION FÜR
Gibt an, dass die Fähigkeit, die angegebene Berechtigung zu erteilen, aufgehoben wird. Dies ist bei Verwendung des CASCADE-Arguments erforderlich.

Important

Hat der Auftraggeber die angegebene Erlaubnis ohne diese GRANT Option, wird die Erlaubnis selbst widerrufen.

ALL
Gilt für: SQL Server 2008 (10.0.x) und höher

Mit dieser Option werden nicht alle möglichen Berechtigungen aufgehoben. Das Aufheben mit ALL entspricht dem Aufheben der folgenden Berechtigungen.

  • Wenn die sichere Datenbank ist, bedeutet BACKUPDATABASEALL , BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, , CREATE RULE, , CREATE TABLEund CREATE VIEW.

  • Falls es sich beim sicherungsfähigen Element um eine skalare Funktion handelt, schließt ALL die Berechtigungen EXECUTE und REFERENCES ein.

  • Ist die Securable eine tabellenwertige Funktion, bedeutet DELETEALL , INSERT, REFERENZEN, SELECT und UPDATE.

  • Falls es sich beim sicherungsfähigen Element um eine gespeicherte Prozedur handelt, steht ALL für EXECUTE.

  • Wenn die Securable eine Tabelle ist, bedeutet DELETEALL , INSERT, REFERENZEN, SELECT und UPDATE.

  • Wenn das Securable eine Ansicht ist, bedeutet DELETEALL , INSERT, REFERENZEN, SELECT und UPDATE.

Note

Die ALL-Syntax REVOKE ist veraltet. Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Widerrufen Sie stattdessen einzelne Berechtigungen.

PRIVILEGES
Aus Gründen der Kompatibilität mit ISO eingeschlossen. Ändert das Verhalten von ALL nicht.

permission
Der Name einer Berechtigung. Die gültigen Zuordnungen von Berechtigungen zu sicherungsfähigen Elementen werden in den Artikeln beschrieben, die unter Für sicherungsfähige Elemente spezifische Syntax weiter unten in diesem Thema aufgelistet werden.

column
Gibt den Namen einer Spalte in einer Tabelle an, für die Berechtigungen aufgehoben werden. Die Klammern sind erforderlich.

class
Gibt die Klasse des sicherungsfähigen Elements an, für das die Berechtigung aufgehoben wird. Der Bereichsqualifizierer :: ist erforderlich.

securable
Gibt das sicherungsfähige Element an, für das die Berechtigung aufgehoben wird.

AN | FROM-Prinzipal
Der Name eines Prinzipals. Die Prinzipale, für die Berechtigungen für ein sicherungsfähiges Element aufgehoben werden können, sind abhängig vom jeweiligen sicherungsfähigen Element unterschiedlich. Weitere Informationen zu gültigen Kombinationen finden Sie in den Themen, die unter Für sicherungsfähige Elemente spezifische Syntax weiter unten in diesem Artikel aufgelistet werden.

CASCADE
Gibt an, dass die aufgehobene Berechtigung auch für andere Prinzipale aufgehoben wird, denen sie von diesem Prinzipal erteilt wurde. Wenn Sie das CASCADE-Argument verwenden, müssen Sie auch das GRANT OPTION FOR-Argument einfügen.

Caution

Ein kaskadierender Widerruf einer MIT GRANT OPTION erteilten Erlaubnis widerruft beide GRANT und DENY dieser Erlaubnis.

AS Schulleiter
Verwenden Sie die Prinzipalklausel AS, um anzugeben, dass Sie eine Berechtigung aufheben, die von einem anderen Prinzipal erteilt wurde. Nehmen Sie beispielsweise an, dass die Benutzerin Mary der principal_id 12 und der Benutzer Raul der principal_id 15 entspricht. Die Benutzer Mary und Raul erteilen dem Benutzer Steven die gleiche Berechtigung. Dann gibt die Tabelle „sys.database_permissions“ die Berechtigungen zweimal an, jedoch mit einem jeweils anderen Wert für „grantor_principal_id“. Mary könnte in diesem Fall die Klausel AS RAUL verwenden, um die von Raul erteilten Berechtigungen zu entfernen.

In dieser Anweisung impliziert die Verwendung von AS nicht die Fähigkeit, die Identität eines anderen Benutzers anzunehmen.

Remarks

Die vollständige Syntax der REVOKE Anweisung ist komplex. Das Syntaxdiagramm oben wurde vereinfacht, um die Struktur hervorzuheben. Die vollständige Syntax zum Aufheben von Berechtigungen für bestimmte sicherungsfähige Elemente wird in den Artikeln beschrieben, die unter Für sicherungsfähige Elemente spezifische Syntax weiter unten in diesem Artikel aufgelistet werden.

Die REVOKE Anweisung kann verwendet werden, um erteilte Berechtigungen zu entfernen, und die DENY Anweisung kann verwendet werden, um zu verhindern, dass ein Prinzipal eine bestimmte Berechtigung über eine .GRANT

Das Erteilen einer Berechtigung entfernt DENY oder REVOKE von dieser Berechtigung für die angegebene sicherungsfähige Berechtigung. Wenn dieselbe Berechtigung in einem höheren Bereich verweigert wird, der die sicherungsfähige Berechtigung enthält, hat dies DENY Vorrang. Das Aufheben der erteilten Berechtigung in einem höheren Bereich hat dagegen keinen Vorrang.

Caution

Eine Tabellenebene DENY hat keine Vorrang vor einer Spaltenebene GRANT. Diese Inkonsistenz in der Berechtigungshierarchie wurde aus Gründen der Abwärtskompatibilität beibehalten. Dieses Element wird in einer späteren Version entfernt.

Die gespeicherte Systemprozedur sp_helprotect gibt Informationen zu Berechtigungen für ein sicherungsfähiges Element auf Datenbankebene zurück.

Die Aussage REVOKE scheitert, wenn CASCADE nicht angegeben ist, wenn Sie eine Erlaubnis eines Auftraggebers widerrufen, der diese Erlaubnis mit GRANT OPTION angegeben hat.

Permissions

Prinzipale mit CONTROL-Berechtigung für ein sicherungsfähiges Element können die Berechtigung für dieses sicherungsfähige Element aufheben. Objektbesitzer können Berechtigungen für die Objekte aufheben, die sie besitzen.

Empfänger der CONTROL SERVER-Berechtigung, z. B. Mitglieder der festen Serverrolle sysadmin, können jede Berechtigung für ein beliebiges sicherungsfähiges Element auf dem Server aufheben. Empfänger der CONTROL SERVER-Berechtigung in einer Datenbank, z. B. Mitglieder der festen Datenbankrolle db_owner, können jede Berechtigung für ein beliebiges sicherungsfähiges Element in der Datenbank aufheben. Empfänger der CONTROL-Berechtigung in einem Schema können jede Berechtigung für jedes Objekt im Schema aufheben.

Securable-spezifische Syntax

In der folgenden Tabelle sind die sicherungsfähigen Elemente und Themen aufgeführt, in denen die für ein sicherungsfähiges Element spezifische Syntax beschrieben wird.

Securable Topic
Anwendungsrolle REVOKE Datenbankprinzipalberechtigungen (Transact-SQL)
Assembly REVOKE Versammlungsgenehmigungen (Transact-SQL)
Asymmetrischer Schlüssel REVOKE Asymmetrische Schlüsselberechtigungen (Transact-SQL)
Verfügbarkeitsgruppe REVOKE Berechtigungen für Verfügbarkeitsgruppen (Transact-SQL)
Certificate REVOKE Zertifikatsberechtigungen (Transact-SQL)
Contract REVOKE Dienstbrokerberechtigungen (Transact-SQL)
Database REVOKE Datenbankberechtigungen (Transact-SQL)
Endpoint REVOKE Endpunktberechtigungen (Transact-SQL)
Datenbankweit gültige Anmeldeinformationen REVOKE Datenbank-Scoped Credential (Transact-SQL)
Volltext-Katalog REVOKE Full-Text Berechtigungen (Transact-SQL)
Full-Text Stoppliste REVOKE Full-Text Berechtigungen (Transact-SQL)
Function REVOKE Objektberechtigungen (Transact-SQL)
Login REVOKE Serverprinzipalberechtigungen (Transact-SQL)
Nachrichtentyp REVOKE Dienstbrokerberechtigungen (Transact-SQL)
Object REVOKE Objektberechtigungen (Transact-SQL)
Queue REVOKE Objektberechtigungen (Transact-SQL)
Remotedienstbindung REVOKE Dienstbrokerberechtigungen (Transact-SQL)
Role REVOKE Datenbankprinzipalberechtigungen (Transact-SQL)
Route REVOKE Dienstbrokerberechtigungen (Transact-SQL)
Schema REVOKE Schema-Berechtigungen (Transact-SQL)
Sucheigenschaftenliste REVOKE Suchberechtigungen für Immobilienverzeichnis (Transact-SQL)
Server REVOKE Serverberechtigungen (Transact-SQL)
Service REVOKE Dienstbrokerberechtigungen (Transact-SQL)
Gespeicherte Prozedur REVOKE Objektberechtigungen (Transact-SQL)
Symmetrische Tonart REVOKE Symmetrische Schlüsselberechtigungen (Transact-SQL)
Synonym REVOKE Objektberechtigungen (Transact-SQL)
Systemobjekte REVOKE Systemobjektberechtigungen (Transact-SQL)
Table REVOKE Objektberechtigungen (Transact-SQL)
Type REVOKE Typberechtigungen (Transact-SQL)
User REVOKE Datenbankprinzipalberechtigungen (Transact-SQL)
View REVOKE Objektberechtigungen (Transact-SQL)
XML-Schemasammlung REVOKE XML-Schema-Sammelberechtigungen (Transact-SQL)

Examples

A. Erteilen und Widerrufen

Anwendungsbereich: SQL Server, SQL-Datenbank

Im folgenden Beispiel wird ein Schema, ein eigenständiger Datenbankbenutzer sowie eine neue Rolle in einer Benutzerdatenbank erstellt. Dabei wird der Benutzer sowie die SELECT-Berechtigung im Schema der Rolle hinzugefügt, und anschließend wird diese Berechtigung für die Rolle entfernt (REVOKE).

CREATE SCHEMA Sales;  
GO
CREATE USER Joe without login;
GO
CREATE ROLE Vendors;
GO
ALTER ROLE Vendors ADD MEMBER Joe; 
GO
GRANT SELECT ON SCHEMA :: Sales TO Vendors;
GO
REVOKE SELECT ON SCHEMA :: Sales TO Vendors;
GO
 

Siehe auch

Berechtigungshierarchie (Datenbank-Engine)
DENY (Transact-SQL)
GRANT (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)