REVOKE (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Tar bort en tidigare beviljad eller nekad behörighet.

Transact-SQL syntaxkonventioner

Syntax

Syntax för SQL Server, Azure SQL Database och Fabric SQL-databas

-- 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 och 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 ALTERNATIV FÖR
Anger att möjligheten att bevilja den angivna behörigheten kommer att återkallas. Detta krävs när du använder argumentet CASCADE.

Important

Om huvudmannen har det angivna tillståndet utan alternativet GRANT , kommer själva tillståndet att dras in.

ALL
Gäller för: SQL Server 2008 (10.0.x) och senare

Det här alternativet återkallar inte alla möjliga behörigheter. Att återkalla ALLA motsvarar återkallande av följande behörigheter.

  • Om den securable är en databas, betyder BACKUPDATABASEALL , BACKUP LOG, CREATE DATABASE, , CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, , CREATE TABLE, och CREATE VIEW.

  • Om skyddsbar är en skalär funktion betyder ALL EXECUTE och REFERENCES.

  • Om den securable är en tabellvärd funktion, betyder DELETEALL , INSERT, REFERENCES, SELECT och UPDATE.

  • Om skyddsbara är en lagrad procedur betyder ALL EXECUTE.

  • Om den securable är en tabell, betyder DELETEALL , INSERT, REFERENSER, SELECT och UPDATE.

  • Om det sekurerbara är en vy, betyder DELETEALL , INSERT, REFERENSER, SELECT, och UPDATE.

Note

REVOKE ALL-syntaxen är föråldrad. Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Återkalla specifika behörigheter i stället.

PRIVILEGES
Ingår för ISO-efterlevnad. Ändrar inte beteendet för ALLA.

permission
Är namnet på en behörighet. Giltiga mappningar av behörigheter till skyddsbara filer beskrivs i de avsnitt som anges i Säker syntax senare i det här avsnittet.

column
Anger namnet på en kolumn i en tabell där behörigheter återkallas. Parenteserna krävs.

class
Anger klassen för den skyddsbara som behörigheten återkallas för. Omfångskvalificeraren :: krävs.

securable
Anger det skydd som behörigheten återkallas för.

TILL | FROM-huvudnamn
Är namnet på ett huvudnamn. De huvudkonton från vilka behörigheter för en skyddsbar kan återkallas varierar beroende på vilka som kan skyddas. Mer information om giltiga kombinationer finns i avsnitten som visas i Säker syntax senare i det här avsnittet.

CASCADE
Anger att behörigheten som återkallas också återkallas från andra huvudnamn som det har beviljats av det här huvudkontot. När du använder CASCADE-argumentet måste du också inkludera argumentet GRANT OPTION FOR.

Caution

En kaskadåterställning av ett tillstånd som beviljats MED GRANT OPTION kommer att återkalla både GRANT och DENY av det tillståndet.

AS rektor
Använd AS-huvudsatsen för att ange att du återkallar en behörighet som har beviljats av ett annat huvudnamn än dig. Anta till exempel att användaren Mary är principal_id 12 och att användaren Raul är principal_id 15. Både Mary och Raul ger en användare som heter Steven samma behörighet. Tabellen sys.database_permissions anger behörigheterna två gånger, men var och en har olika grantor_principal_id värde. Mary kan återkalla behörigheten med hjälp av klausulen AS RAUL för att ta bort Rauls beviljande av behörigheten.

Användningen av AS i den här instruktionen innebär inte möjligheten att personifiera en annan användare.

Remarks

Den fullständiga syntaxen för REVOKE-instruktionen är komplex. Syntaxdiagrammet ovan förenklades för att uppmärksamma dess struktur. Fullständig syntax för återkallande av behörigheter för specifika skyddsbara objekt beskrivs i de avsnitt som anges i Säker syntax senare i det här avsnittet.

Instruktionen REVOKE kan användas för att ta bort beviljade behörigheter, och DENY-instruktionen kan användas för att förhindra att ett huvudnamn får en specifik behörighet via en GRANT.

Om du beviljar en behörighet tar DENY eller REVOKE av behörigheten bort för den angivna skyddsbara filen. Om samma behörighet nekas med ett högre omfång som innehåller det skyddbara objektet har DENY företräde. Att återkalla den beviljade behörigheten i ett högre omfång har dock inte företräde.

Caution

En DENY på tabellnivå har inte företräde framför en GRANTpå kolumnnivå. Den här inkonsekvensen i behörighetshierarkin har bevarats för bakåtkompatibilitet. Den tas bort i en framtida version.

Den sp_helprotect system lagrade proceduren rapporterar behörigheter på databasnivå som kan säkras

Uttalandet REVOKE kommer att misslyckas om CASCADE inte specificeras när du återkallar ett tillstånd från en huvudman som beviljats det tillståndet med GRANT OPTION specificerat.

Permissions

Huvudnamn med KONTROLL-behörighet för en skyddsbar kan återkalla behörigheten för den skyddsbara filen. Objektägare kan återkalla behörigheter för de objekt de äger.

Beviljare av CONTROL SERVER-behörighet, till exempel medlemmar i den fasta sysadmin-serverrollen, kan återkalla alla behörigheter som kan säkras på servern. Behörighetsbeviljare för CONTROL på en databas, till exempel medlemmar i db_owner fast databasroll, kan återkalla alla behörigheter som kan säkras i databasen. Beviljare av CONTROL-behörighet för ett schema kan återkalla alla behörigheter för alla objekt i schemat.

Securable-specifik syntax

I följande tabell visas de skyddsbara ämnena och de ämnen som beskriver den säkerhetsbara syntaxen.

Securable Topic
Applikationsroll REVOKE Databasens huvudbehörigheter (Transact-SQL)
Assembly REVOKE Samlingsbehörigheter (Transact-SQL)
Asymmetrisk tonart REVOKE Asymmetriska nyckelbehörigheter (Transact-SQL)
Tillgänglighetsgrupp REVOKE Tillgänglighetsgruppsbehörigheter (Transact-SQL)
Certificate REVOKE Certifikatbehörigheter (Transact-SQL)
Contract REVOKE Service Broker-behörigheter (Transact-SQL)
Database REVOKE Databasbehörigheter (Transact-SQL)
Endpoint REVOKE Slutpunktsbehörigheter (Transact-SQL)
Databasomfattande autentiseringsuppgifter REVOKE Databasbegränsad behörighet (Transact-SQL)
Fulltextkatalog REVOKE Full-Text Behörigheter (Transact-SQL)
Full-Text Stopplista REVOKE Full-Text Behörigheter (Transact-SQL)
Function REVOKE Objektbehörigheter (Transact-SQL)
Login REVOKE Behörigheter för serverhuvudnamn (Transact-SQL)
Meddelandetyp REVOKE Service Broker-behörigheter (Transact-SQL)
Object REVOKE Objektbehörigheter (Transact-SQL)
Queue REVOKE Objektbehörigheter (Transact-SQL)
Fjärrtjänstbindning REVOKE Service Broker-behörigheter (Transact-SQL)
Role REVOKE Databasens huvudbehörigheter (Transact-SQL)
Route REVOKE Service Broker-behörigheter (Transact-SQL)
Schema REVOKE Schemabehörigheter (Transact-SQL)
Sök egenskapslista REVOKE Sök behörigheter för egendomslistor (Transact-SQL)
Server REVOKE Serverbehörigheter (Transact-SQL)
Service REVOKE Service Broker-behörigheter (Transact-SQL)
Lagrad procedur REVOKE Objektbehörigheter (Transact-SQL)
Symmetrisk tonart REVOKE Symmetriska nyckelbehörigheter (Transact-SQL)
Synonym REVOKE Objektbehörigheter (Transact-SQL)
Systemobjekt REVOKE Behörigheter för systemobjekt (Transact-SQL)
Table REVOKE Objektbehörigheter (Transact-SQL)
Type REVOKE Typbehörigheter (Transact-SQL)
User REVOKE Databasens huvudbehörigheter (Transact-SQL)
View REVOKE Objektbehörigheter (Transact-SQL)
XML-schemasamling REVOKE XML-schemainsamlingsbehörigheter (Transact-SQL)

Examples

A. Bevilja och återkalla

Gäller för: SQL Server, SQL Database

I följande exempel skapas ett schema, en innesluten databasanvändare och en ny roll i en användardatabas. Den lägger till användaren i rollen, ger SELECT-behörighet i schemat till rollen och tar sedan bort (REVOKE) behörigheten till rollen.

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
 

Se även

behörighetshierarki (databasmotor)
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)