Behörigheter: BEVILJA, NEKA, ÅTERKALLA
gäller för:Azure Synapse AnalyticsAnalytics Platform System (PDW)SQL-analysslutpunkt i Microsoft FabricWarehouse i Microsoft Fabric
Använd GRANT- och DENY--instruktioner för att bevilja eller neka en behörighet (till exempel UPDATE) på en säkerhetsbar (till exempel en databas, tabell, vy osv.) till ett säkerhetsobjekt (en inloggning, en databasanvändare eller en databasroll). Använd ÅTERKALLA för att ta bort beviljandet eller nekandet av en behörighet.
Behörigheter på servernivå tillämpas på inloggningar. Behörigheter på databasnivå tillämpas på databasanvändare och databasroller.
Om du vill se vilka behörigheter som har beviljats och nekats frågar du vyerna sys.server_permissions och sys.database_permissions. Behörigheter som inte uttryckligen beviljas eller nekas till ett säkerhetsobjekt kan ärvas genom att ha medlemskap i en roll som har behörigheter. Behörigheterna för de fasta databasrollerna kan inte ändras och visas inte i vyerna sys.server_permissions och sys.database_permissions.
BEVILJA uttryckligen beviljar en eller flera behörigheter.
NEKA uttryckligen nekar huvudkontot från att ha en eller flera behörigheter.
ÅTERKALLA tar bort befintliga BEVILJA eller NEKA behörigheter.
Transact-SQL syntaxkonventioner
Syntax
-- Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
GRANT
<permission> [ ,...n ]
[ ON [ <class_type> :: ] securable ]
TO principal [ ,...n ]
[ WITH GRANT OPTION ]
[;]
DENY
<permission> [ ,...n ]
[ ON [ <class_type> :: ] securable ]
TO principal [ ,...n ]
[ CASCADE ]
[;]
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
}
Argument
<behörighet>[ ,...n ]
En eller flera behörigheter för att bevilja, neka eller återkalla.
ON [ <class_type> :: ] satsen ON beskriver den skyddsbara parameter som behörigheter ska beviljas, nekas eller återkallas på.
<class_type> Klasstypen för den säkra. Detta kan vara LOGIN, DATABASE, OBJECT, SCHEMA, ROLEeller USER. Behörigheter kan också beviljas till SERVERclass_type, men SERVER- har inte angetts för dessa behörigheter. DATABASE anges inte när behörigheten innehåller ordet DATABASE (till exempel ALTER ANY DATABASE). När ingen class_type har angetts och behörighetstypen inte är begränsad till server- eller databasklassen antas klassen vara OBJECT.
Namnet på inloggningen, databasen, tabellen, vyn, schemat, proceduren, rollen eller användaren som du vill bevilja, neka eller återkalla behörigheter på. Objektnamnet kan anges med namngivningsregler i tre delar som beskrivs i Transact-SQL syntaxkonventioner.
ATT huvudnamn [ ,...n ]
Ett eller flera huvudkonton beviljas, nekas eller återkallas. Huvudnamn är namnet på en inloggnings-, databasanvändares eller databasroll.
FRÅN huvudnamn [ ,...n ]
Ett eller flera huvudnamn att återkalla behörigheter från. Huvudnamn är namnet på en inloggnings-, databasanvändares eller databasroll.
FROM kan endast användas med en REVOKE--instruktion.
TO kan användas med GRANT, DENYeller REVOKE.
MED ALTERNATIVET BEVILJA
Anger att den beviljande också kommer att ges möjlighet att bevilja den angivna behörigheten till andra huvudkonton.
KASKAD
Anger att behörigheten nekas eller återkallas till det angivna huvudkontot och till alla andra huvudnamn som huvudkontot har beviljat behörigheten till. Krävs när huvudkontot har behörighet med GRANT OPTION.
BEVILJA 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.
Viktig
Om huvudkontot har den angivna behörigheten utan alternativet GRANT återkallas själva behörigheten.
Behörigheter
Om du vill bevilja en behörighet måste beviljaren antingen ha behörigheten själv med MED GRANT OPTION, eller ha en högre behörighet som innebär att behörigheten beviljas. Objektägare kan bevilja behörigheter för de objekt de äger. Huvudkonton med CONTROL- behörighet för en skyddsbar kan bevilja behörighet för den skyddsbara filen. Medlemmar i db_owner- och db_securityadmin fasta databasroller kan ge alla behörigheter i databasen.
Allmänna kommentarer
Neka eller återkalla behörigheter till ett huvudnamn påverkar inte begäranden som har godkänts och körs för närvarande. Om du vill begränsa åtkomsten omedelbart måste du avbryta aktiva begäranden eller avsluta aktuella sessioner.
Not
De flesta fasta serverroller är inte tillgängliga i den här versionen. Använd användardefinierade databasroller i stället. Inloggningar kan inte läggas till i sysadmin fast serverroll. Om du beviljar KONTROLLSERVER behörighet uppskattas medlemskapet i sysadmin fast serverroll.
Vissa instruktioner kräver flera behörigheter. Om du till exempel vill skapa en tabell krävs behörigheterna CREATE TABLE i databasen och ALTER SCHEMA behörighet för tabellen som ska innehålla tabellen.
Analytics Platform System (PDW) kör ibland lagrade procedurer för att distribuera användaråtgärder till beräkningsnoderna. Därför kan inte körningsbehörigheten för en hel databas nekas. (Till exempel misslyckas DENY EXECUTE ON DATABASE::<name> TO <user>;
.) Som en lösning nekar du körningsbehörigheten till användarscheman eller specifika objekt (procedurer).
I Microsoft Fabric går det för närvarande inte att uttryckligen köra CREATE USER. När GRANT eller DENY körs skapas användaren automatiskt.
I Microsoft Fabric är behörigheter på servernivå inte hanterbara.
Implicita och explicita behörigheter
En uttrycklig behörighet är en BEVILJA eller NEKA behörighet som ges till ett huvudnamn av en GRANT eller DENY-instruktion.
En implicit behörighet är en GRANT eller NEKA behörighet som ett huvudnamn (inloggning, användare eller databasroll) har ärvt från en annan databasroll.
En implicit behörighet kan också ärvas från en överordnad eller överordnad behörighet. Till exempel kan UPDATE- behörighet i en tabell ärvas genom att ha UPDATE- behörighet för schemat som innehåller tabellen eller CONTROL- behörighet i tabellen.
Ägarskapslänkning
När flera databasobjekt kommer åt varandra sekventiellt kallas sekvensen för en -kedja. Även om sådana kedjor inte finns oberoende av varandra, utvärderar SQL Server behörigheter för de ingående objekten på ett annat sätt när SQL Server passerar länkarna i en kedja än om de skulle komma åt objekten separat. Ägarskapslänkning har viktiga konsekvenser för att hantera säkerheten. Mer information om ägarskapskedjor finns i Ägarskapskedjor och Självstudie: Ägarskapskedjor och Kontextväxling.
Behörighetslista
Behörigheter på servernivå
Behörigheter på servernivå kan beviljas, nekas och återkallas från inloggningar.
behörigheter som gäller för servrar
KONTROLLSERVER
ADMINISTRERA MASSÅTGÄRDER
ÄNDRA ALLA ANSLUTNINGAR
ÄNDRA EN DATABAS
SKAPA VALFRI DATABAS
ÄNDRA ALLA EXTERNA DATAKÄLLOR
ÄNDRA VALFRITT EXTERNT FILFORMAT
ÄNDRA ALLA INLOGGNINGAR
ÄNDRA SERVERTILLSTÅND
ANSLUT SQL
VISA VALFRI DEFINITION
VISA VALFRI DATABAS
VISA SERVERTILLSTÅND
behörigheter som gäller för inloggningar
KONTROLL VID INLOGGNING
ÄNDRA VID INLOGGNING
PERSONIFIERA VID INLOGGNING
VISA DEFINITION
Behörigheter på databasnivå
Behörigheter på databasnivå kan beviljas, nekas och återkallas från databasanvändare och användardefinierade databasroller.
behörigheter som gäller för alla databasklasser
KONTROLL
ÄNDRA
VISA DEFINITION
behörigheter som gäller för alla databasklasser utom användare
- TA ÄGARSKAP
behörigheter som endast gäller för databaser
ÄNDRA EN DATABAS
ÄNDRA PÅ DATABAS
ÄNDRA ALLA DATARYMDER
ÄNDRA VILKEN ROLL SOM HELST
ÄNDRA VALFRITT SCHEMA
ÄNDRA ALLA ANVÄNDARE
SÄKERHETSKOPIERINGSDATABAS
ANSLUT TILL DATABASEN
SKAPA PROCEDUR
SKAPA ROLL
SKAPA SCHEMA
SKAPA TABELL
SKAPA VY
SHOWPLAN
behörigheter som endast gäller för användare
- PERSONIFIERA
behörigheter som gäller för databaser, scheman och objekt
ÄNDRA
TA BORT
UTFÖRA
INFOGA
UTVALD
UPPDATERA
REFERENSER
En definition av varje typ av behörighet finns i Behörigheter (databasmotor).
Standardbehörigheter
I följande lista beskrivs standardbehörigheterna:
När en inloggning skapas med hjälp av instruktionen CREATE LOGIN får den nya inloggningen behörigheten CONNECT SQL.
Alla inloggningar är medlemmar i den offentliga serverrollen och kan inte tas bort från offentliga.
När en databasanvändare skapas med behörigheten CREATE USER får databasanvändaren behörigheten CONNECT i databasen.
Alla huvudnamn, inklusive offentliga roll, har som standard inga explicita eller implicita behörigheter.
När en inloggning eller användare blir ägare till en databas eller ett objekt har inloggningen eller användaren alltid alla behörigheter för databasen eller objektet. Ägarskapsbehörigheterna kan inte ändras och visas inte som explicita behörigheter. GRANT, NEKAoch ÅTERKALLA-instruktioner påverkar inte ägarna.
Inloggningen sa har alla behörigheter för installationen. På samma sätt som ägarskapsbehörigheter kan sa behörigheter inte ändras och visas inte som explicita behörigheter. GRANT-, NEKAoch ÅTERKALLA-instruktioner påverkar inte sa inloggning. Det går inte att byta namn på sa inloggning.
Instruktionen USE kräver inte behörigheter. Alla huvudnamn kan köra instruktionen USE på valfri databas.
Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)
A. Bevilja en servernivå behörighet till en inloggning
Följande två instruktioner ger en servernivå behörighet till en inloggning.
GRANT CONTROL SERVER TO [Ted];
GRANT ALTER ANY DATABASE TO Mary;
B. Bevilja en servernivå behörighet till en inloggning
I följande exempel ges en behörighet på servernivå vid en inloggning till ett serverhuvudnamn (en annan inloggning).
GRANT VIEW DEFINITION ON LOGIN::Ted TO Mary;
C. Bevilja en användare behörighet på databasnivå
I följande exempel ges en behörighet på databasnivå för en användare till ett databashuvudnamn (en annan användare).
GRANT VIEW DEFINITION ON USER::[Ted] TO Mary;
D. Bevilja, neka och återkalla en schemabehörighet
Följande GRANT--instruktion ger Yuen möjlighet att välja data från valfri tabell eller vy i dbo-schemat.
GRANT SELECT ON SCHEMA::dbo TO [Yuen];
Följande DENY--instruktion hindrar Yuen från att välja data från en tabell eller vy i dbo-schemat. Yuen kan inte läsa data även om han har behörighet på något annat sätt, till exempel genom ett rollmedlemskap.
DENY SELECT ON SCHEMA::dbo TO [Yuen];
Följande ÅTERKALLA-instruktionen tar bort behörigheten NEKA. Nu är Yuens explicita behörigheter neutrala. Yuen kanske kan välja data från valfri tabell via någon annan implicit behörighet, till exempel ett rollmedlemskap.
REVOKE SELECT ON SCHEMA::dbo TO [Yuen];
E. Demonstrerar den valfria OBJECT:: -satsen
Eftersom OBJECT är standardklassen för en behörighetsinstruktion är följande två instruktioner desamma. Satsen OBJECT:: är valfri.
GRANT UPDATE ON OBJECT::dbo.StatusTable TO [Ted];
GRANT UPDATE ON dbo.StatusTable TO [Ted];