Delen via


REVOKE (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric Preview

Hiermee verwijdert u een eerder verleende of geweigerde machtiging.

Transact-SQL syntaxis-conventies

Syntax

Syntaxis voor SQL Server, Azure SQL Database en Fabric SQL-database

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

Syntaxis voor Azure Synapse Analytics, Parallel Data Warehouse en 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

TOEKENNINGSOPTIE VOOR
Geeft aan dat de mogelijkheid om de opgegeven machtiging te verlenen wordt ingetrokken. Dit is vereist wanneer u het argument TRAPSGEWIJS gebruikt.

Important

Als de principal de opgegeven machtiging heeft zonder de optie GRANT, wordt de machtiging zelf ingetrokken.

ALL
Van toepassing op: SQL Server 2008 (10.0.x) en hoger

Met deze optie worden niet alle mogelijke machtigingen ingetrokken. Het intrekken van ALL is gelijk aan het intrekken van de volgende machtigingen.

  • Als de beveiligbare database een database is, betekent ALLE BACK-UPDATABASE, BACK-UPLOGBOEK, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE en CREATE VIEW.

  • Als de beveiligbare functie een scalaire functie is, betekent ALL EXECUTE en REFERENCES.

  • Als de beveiligbare functie een tabelwaarde is, betekent ALL DELETE, INSERT, REFERENCES, SELECT en UPDATE.

  • Als de beveiligbare procedure een opgeslagen procedure is, betekent ALL EXECUTE.

  • Als het beveiligbare een tabel is, betekent ALLE VERWIJDEREN, INVOEGEN, VERWIJZINGEN, SELECT en BIJWERKEN.

  • Als de beveiligbare weergave een weergave is, betekent ALLES VERWIJDEREN, INVOEGEN, VERWIJZINGEN, SELECTEREN en BIJWERKEN.

Note

De syntaxis REVOKE ALL is afgeschaft. Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. In plaats daarvan specifieke machtigingen intrekken.

PRIVILEGES
Opgenomen voor ISO-naleving. Het gedrag van ALL wordt niet gewijzigd.

permission
Is de naam van een machtiging. De geldige toewijzingen van machtigingen voor beveiligbare objecten worden beschreven in de onderwerpen die verderop in dit onderwerp worden vermeld in de syntaxis die specifiek is voor beveiligbaar .

column
Hiermee geeft u de naam van een kolom in een tabel waarop machtigingen worden ingetrokken. De haakjes zijn vereist.

class
Hiermee geeft u de klasse van de beveiligbare waarop de machtiging wordt ingetrokken. De kwalificatie voor het bereik :: is vereist.

securable
Hiermee geeft u de beveiligbare waarop de machtiging wordt ingetrokken.

AAN | FROM-principal
Is de naam van een principal. De principals waaruit machtigingen voor een beveiligbare kunnen worden ingetrokken, variëren, afhankelijk van de beveiligbare. Zie de onderwerpen in securable-specifieke syntaxis verderop in dit onderwerp voor meer informatie over geldige combinaties.

CASCADE
Geeft aan dat de machtiging die wordt ingetrokken, ook wordt ingetrokken van andere principals waaraan deze principal is verleend. Wanneer u het argument TRAPSGEWIJS gebruikt, moet u ook het argument GRANT OPTION FOR opnemen.

Caution

Een trapsgewijs intrekken van een machtiging die MET GRANT OPTION wordt verleend, trekt zowel GRANT als DENY van die machtiging in.

AS principal
Gebruik de AS-principalcomponent om aan te geven dat u een machtiging aanroept die is verleend door een andere principal dan u. Stel bijvoorbeeld dat gebruiker Mary principal_id 12 is en dat de gebruiker Raul principal_id 15 is. Zowel Mary als Raul verlenen een gebruiker met de naam Steven dezelfde machtiging. De sys.database_permissions tabel geeft de machtigingen twee keer aan, maar ze hebben elk een andere grantor_principal_id waarde. Mary kan de machtiging intrekken met behulp van de AS RAUL component om de toekenning van de machtiging van Raul te verwijderen.

Het gebruik van AS in deze instructie impliceert niet de mogelijkheid om een andere gebruiker te imiteren.

Remarks

De volledige syntaxis van de instructie REVOKE is complex. Het bovenstaande syntaxisdiagram is vereenvoudigd om de aandacht te vestigen op de structuur ervan. De volledige syntaxis voor het intrekken van machtigingen voor specifieke beveiligbare objecten wordt beschreven in de onderwerpen die verderop in dit onderwerp worden vermeld in de securable-specifieke syntaxis .

De INSTRUCTIE REVOKE kan worden gebruikt om verleende machtigingen te verwijderen en de instructie DENY kan worden gebruikt om te voorkomen dat een principal een specifieke machtiging kan verkrijgen via een GRANT.

Als u een machtiging verleent, wordt DENY of REVOKE van die machtiging voor de opgegeven beveiligbaar verwijderd. Als dezelfde machtiging wordt geweigerd voor een hoger bereik dat het beveiligbare bevat, heeft deny voorrang. Het intrekken van de verleende machtiging op een hoger bereik heeft echter geen prioriteit.

Caution

Een DENY op tabelniveau heeft geen prioriteit boven een GRANT op kolomniveau. Deze inconsistentie in de machtigingshiërarchie is behouden voor achterwaartse compatibiliteit. Deze wordt verwijderd in een toekomstige release.

De sp_helprotect systeem opgeslagen procedure rapporteert machtigingen op databaseniveau beveiligbaar

De INSTRUCTIE REVOKE mislukt als CASCADE niet is opgegeven wanneer u een machtiging aanroept van een principal waaraan die machtiging is verleend met GRANT OPTION opgegeven.

Permissions

Principals met CONTROL-machtiging voor een beveiligbaar apparaat kunnen de machtiging voor die beveiligbare intrekken. Objecteigenaren kunnen machtigingen intrekken voor de objecten die ze bezitten.

Grantees van CONTROL SERVER-machtiging, zoals leden van de vaste serverfunctie sysadmin, kunnen elke machtiging intrekken voor elk beveiligbaar apparaat op de server. Grantees van CONTROL-machtigingen voor een database, zoals leden van de db_owner vaste databaserol, kunnen elke machtiging intrekken voor elk beveiligbaar bestand in de database. Grantees of CONTROL permission on a schema can revoke any permission on any object within the schema.

Securable-specific Syntax

De volgende tabel bevat de beveiligbare items en de onderwerpen die de beveiligbare specifieke syntaxis beschrijven.

Securable Topic
Application Role Machtigingen voor database-principal intrekken (Transact-SQL)
Assembly Assemblymachtigingen intrekken (Transact-SQL)
Asymmetric Key Asymmetrische sleutelmachtigingen intrekken (Transact-SQL)
Availability Group Machtigingen voor de beschikbaarheidsgroep intrekken (Transact-SQL)
Certificate Certificaatmachtigingen intrekken (Transact-SQL)
Contract Service Broker-machtigingen intrekken (Transact-SQL)
Database Databasemachtigingen intrekken (Transact-SQL)
Endpoint Eindpuntmachtigingen intrekken (Transact-SQL)
Referentie in databasebereik Referentie met databasebereik intrekken (Transact-SQL)
Full-text Catalog Machtigingen intrekken Full-Text (Transact-SQL)
Full-Text Stoplist Machtigingen intrekken Full-Text (Transact-SQL)
Function Objectmachtigingen intrekken (Transact-SQL)
Login Machtigingen voor server-principal intrekken (Transact-SQL)
Message Type Service Broker-machtigingen intrekken (Transact-SQL)
Object Objectmachtigingen intrekken (Transact-SQL)
Queue Objectmachtigingen intrekken (Transact-SQL)
Externe servicebinding Service Broker-machtigingen intrekken (Transact-SQL)
Role Machtigingen voor database-principal intrekken (Transact-SQL)
Route Service Broker-machtigingen intrekken (Transact-SQL)
Schema Schemamachtigingen intrekken (Transact-SQL)
Lijst met zoekeigenschappen Machtigingen voor de lijst met zoekeigenschappen intrekken (Transact-SQL)
Server servermachtigingen intrekken (Transact-SQL)
Service Service Broker-machtigingen intrekken (Transact-SQL)
Stored Procedure Objectmachtigingen intrekken (Transact-SQL)
Symmetric Key Machtigingen voor symmetrische sleutels intrekken (Transact-SQL)
Synonym Objectmachtigingen intrekken (Transact-SQL)
System Objects Machtigingen voor systeemobject intrekken (Transact-SQL)
Table Objectmachtigingen intrekken (Transact-SQL)
Type Machtigingen voor HET INTREKKEN van het type (Transact-SQL)
User Machtigingen voor database-principal intrekken (Transact-SQL)
View Objectmachtigingen intrekken (Transact-SQL)
XML-schemaverzameling MACHTIGINGEN voor XML-schemaverzameling intrekken (Transact-SQL)

Examples

A. Verlenen en intrekken

Van toepassing op: SQL Server, SQL Database

In het volgende voorbeeld wordt een schema, een ingesloten databasegebruiker en een nieuwe rol voor een gebruikersdatabase gemaakt. De gebruiker wordt toegevoegd aan de rol, verleent SELECT-machtigingen voor het schema aan de rol en verwijdert (REVOKE) die machtiging voor de rol.

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
 

See Also

Machtigingshiërarchie (Database 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)