Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Warehouse in Microsoft Fabric
Gebruik GRANT en DENY statements om een toestemming (zoals UPDATE) te verlenen of te weigeren op een beveiligingsprincipe (zoals een database, tabel, weergave, enz.) aan een beveiligingsprincipal (een login, databasegebruiker of databaserol). Gebruik REVOKE om de toekenning of weigering van een toestemming te verwijderen.
Machtigingen op serverniveau worden toegepast op aanmeldingen. Machtigingen op databaseniveau worden toegepast op databasegebruikers en databaserollen.
Als u wilt zien welke machtigingen zijn verleend en geweigerd, voert u een query uit op de sys.server_permissions- en sys.database_permissions weergaven. Machtigingen die niet expliciet aan een beveiligingsprincipaal worden verleend of geweigerd, kunnen worden overgenomen door lidmaatschap van een rol met machtigingen. De machtigingen van de vaste databaserollen kunnen niet worden gewijzigd en worden niet weergegeven in de sys.server_permissions- en sys.database_permissions weergaven.
GRANT Geeft expliciet één of meer toestemmingen.
DENY ontzegt expliciet dat de principaal één of meer rechten krijgt.
REVOKE verwijdert bestaande GRANT of DENY permissies.
Transact-SQL syntaxisconventies
Syntaxis
-- 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
}
Argumenten
<machtiging>[ ,...n ]
Een of meer machtigingen voor het verlenen, weigeren of intrekken.
ON [ <class_type> :: ] beveiligbare De component ON beschrijft de beveiligbare parameter voor het verlenen, weigeren of intrekken van machtigingen.
<class_type> Het klassetype van het beveiligbare. Dit kan , DATABASE, OBJECT,SCHEMA , ROLE, of , zijnLOGINUSER. Machtigingen kunnen ook worden verleend aan de SERVER-class_type, maar SERVER- is niet opgegeven voor deze machtigingen. DATABASE wordt niet gespecificeerd wanneer de toestemming het woord DATABASE bevat (bijvoorbeeld ALTER ANY DATABASE). Wanneer er geen class_type is opgegeven en het machtigingstype niet is beperkt tot de server- of databaseklasse, wordt ervan uitgegaan dat de klasse wordt OBJECT.
beveiligbare
De naam van de aanmelding, database, tabel, weergave, schema, procedure, rol of gebruiker waarvoor machtigingen moeten worden verleend, geweigerd of ingetrokken. De objectnaam kan worden opgegeven met de driedelige naamgevingsregels die worden beschreven in Transact-SQL syntaxisconventies.
principal [ ,...n ]
Een of meer principals worden verleend, geweigerd of ingetrokken. Principal is de naam van een aanmeldings-, databasegebruiker- of databaserol.
VAN directeur [ ,... n ]
Een of meer principals waaruit u machtigingen wilt intrekken. Principal is de naam van een aanmeldings-, databasegebruiker- of databaserol.
FROM kan alleen met een REVOKE statement worden gebruikt.
TO kan worden gebruikt met GRANT, DENY, of REVOKE.
MET GRANT OPTIE
Geeft aan dat de toekenning ook de mogelijkheid krijgt om de opgegeven machtiging te verlenen aan andere principals.
CASCADE
Geeft aan dat de machtiging wordt geweigerd of ingetrokken voor de opgegeven principal en aan alle andere principals waaraan de principal de machtiging heeft verleend. Vereist wanneer de directeur toestemming heeft bij GRANT OPTION.
GRANT OPTIE VOOR
Geeft aan dat de mogelijkheid om de opgegeven machtiging te verlenen wordt ingetrokken. Dit is vereist wanneer u het argument CASCADE gebruikt.
Belangrijk
Als de opdrachtgever de gespecificeerde toestemming heeft zonder die GRANT optie, wordt de toestemming zelf ingetrokken.
Machtigingen
Om een vergunning te verlenen, moet de verstrekker ofwel de toestemming zelf hebben met de WITH-OPTIE GRANT , of een hogere toestemming die impliceert dat de toestemming wordt verleend. Objecteigenaren kunnen machtigingen verlenen voor de objecten die ze bezitten. Principals met CONTROL- machtiging voor een beveiligbaar apparaat kunnen machtigingen verlenen voor die beveiligbare machtiging. Leden van de db_owner en db_securityadmin vaste databaserollen kunnen elke machtiging in de database verlenen.
Algemene opmerkingen
Het weigeren of intrekken van machtigingen voor een principal heeft geen invloed op aanvragen die zijn geslaagd voor autorisatie en die momenteel worden uitgevoerd. Als u de toegang onmiddellijk wilt beperken, moet u actieve aanvragen annuleren of huidige sessies beëindigen.
Notitie
De meeste vaste serverfuncties zijn niet beschikbaar in deze release. Gebruik in plaats daarvan door de gebruiker gedefinieerde databaserollen. Aanmeldingen kunnen niet worden toegevoegd aan de sysadmin vaste serverfunctie. Als u de CONTROL SERVER machtiging verleent, wordt het lidmaatschap van de sysadmin vaste serverfunctie geschat.
Voor sommige instructies zijn meerdere machtigingen vereist. Bijvoorbeeld, om een tabel te maken zijn de rechten in de database vereist CREATE TABLE , en de ALTER SCHEMA toestemming voor de tabel die de tabel zal bevatten.
Analytics Platform System (PDW) voert soms opgeslagen procedures uit om gebruikersacties naar de rekenknooppunten te distribueren. De uitvoermachtiging voor een hele database kan daarom niet worden geweigerd. (Bijvoorbeeld DENY EXECUTE ON DATABASE::<name> TO <user>; mislukt.) Als tijdelijke oplossing kunt u de uitvoermachtiging voor gebruikersschema's of specifieke objecten (procedures) weigeren.
In Microsoft Fabric kan momenteel niet expliciet CREATE USER worden uitgevoerd. Wanneer GRANT of DENY wordt uitgevoerd, wordt de gebruiker automatisch aangemaakt.
In Microsoft Fabric kunnen machtigingen op serverniveau niet worden beheerd.
Impliciete en expliciete machtigingen
Een expliciete toestemming is een GRANT- of DENY-toestemming die aan een principal wordt verleend door een GRANT- of DENY-instructie.
Een impliciete toestemming is een GRANT of DENY een permissie die een principal (login, gebruiker of databaserol) heeft geërfd van een andere databaserol.
Een impliciete machtiging kan ook worden overgenomen van een dekkings- of bovenliggende machtiging. Bijvoorbeeld, UPDATE toestemming op een tabel kan worden geërfd door toestemming te hebben UPDATE op het schema dat de tabel bevat, of CONTROL-toestemming op de tabel.
Eigendomsketen
Wanneer meerdere databaseobjecten elkaar opeenvolgend openen, wordt de reeks een ketengenoemd. Hoewel dergelijke ketens niet onafhankelijk bestaan, evalueert SQL Server, wanneer SQL Server de koppelingen in een keten doorkruist, machtigingen voor de samenstellende objecten anders dan wanneer het de objecten afzonderlijk zou openen. Eigendomsketen heeft belangrijke gevolgen voor het beheren van beveiliging. Zie voor meer informatie over eigendomsketens eigendomsketens en zelfstudie: Eigendomsketens en contextwisselingen.
Lijst met machtigingen
Machtigingen op serverniveau
Machtigingen op serverniveau kunnen worden verleend, geweigerd en ingetrokken voor aanmeldingen.
machtigingen die van toepassing zijn op servers
besturingsserver
BULKBEWERKINGEN BEHEREN
ELKE VERBINDING WIJZIGEN
WIJZIG EEN DATABASE
MAAK ELKE DATABASE
WIJZIG EEN EXTERNAL DATA SOURCE
WIJZIG EEN EXTERNAL FILE FORMAT
WIJZIG EEN LOGIN
STATUS VAN ALTER SERVER
VERBINDING MAKEN MET SQL
VIEW ELKE DEFINITIE
VIEW ELKE DATABASE
VIEW SERVERSTATUS
machtigingen die van toepassing zijn op aanmeldingen
BEDIENING AAN LOGIN
ALTER ON LOGIN
IMITEER AAN LOGIN
VIEW DEFINITIE
Machtigingen op databaseniveau
Machtigingen op databaseniveau kunnen worden verleend, geweigerd en ingetrokken voor databasegebruikers en door de gebruiker gedefinieerde databaserollen.
machtigingen die van toepassing zijn op alle databaseklassen
BEHEERSEN
VERANDEREN
VIEW DEFINITIE
machtigingen die van toepassing zijn op alle databaseklassen, met uitzondering van gebruikers
- EIGENAAR
machtigingen die alleen van toepassing zijn op databases
WIJZIG EEN DATABASE
ALTER ON DATABASE
ELKE DATASPACE WIJZIGEN
WIJZIG EEN ROLE
WIJZIG EEN SCHEMA
WIJZIG EEN USER
BACKUP DATABASE
VERBIND JE DATABASE
CREATE PROCEDURE
CREATE ROLE
CREATE SCHEMA
CREATE TABLE
CREATE VIEW
SHOWPLAN
machtigingen die alleen van toepassing zijn op gebruikers
- IMITEREN
machtigingen die van toepassing zijn op databases, schema's en objecten
VERANDEREN
DELETE
EXECUTEREN
INSERT
SELECTEREN
UPDATE
VERWIJZINGEN
Zie Machtigingen (Database Engine)voor een definitie van elk type machtiging.
Standaardmachtigingen
In de volgende lijst worden de standaardmachtigingen beschreven:
Wanneer een login wordt aangemaakt met behulp van de CREATE LOGIN instructie, ontvangt de nieuwe login de CONNECT SQL-machtiging .
Alle aanmeldingen zijn lid van de openbare-serverfunctie en kunnen niet worden verwijderd uit openbare.
Wanneer een databasegebruiker wordt aangemaakt met behulp van de CREATE USER recht, ontvangt de databasegebruiker de CONNECT-machtiging in de database.
Alle principals, inclusief de openbare rol, hebben standaard geen expliciete of impliciete machtigingen.
Wanneer een aanmelding of gebruiker eigenaar wordt van een database of object, heeft de aanmelding of gebruiker altijd alle machtigingen voor de database of het object. De eigendomsmachtigingen kunnen niet worden gewijzigd en zijn niet zichtbaar als expliciete machtigingen. De GRANT, DENY, en verklaringen REVOKE hebben geen effect op eigenaren.
De sa aanmelding heeft alle machtigingen op het apparaat. Net als bij eigendomsmachtigingen kunnen de sa machtigingen niet worden gewijzigd en zijn ze niet zichtbaar als expliciete machtigingen. De GRANT, DENY, en REVOKE instructies hebben geen effect op SA-login . De naam van de sa aanmelding kan niet worden gewijzigd.
Voor de instructie USE zijn geen machtigingen vereist. Alle principals kunnen de instructie USE uitvoeren op elke database.
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
Een. Een machtiging op serverniveau verlenen voor een aanmelding
Met de volgende twee instructies verleent u een machtiging op serverniveau voor een aanmelding.
GRANT CONTROL SERVER TO [Ted];
GRANT ALTER ANY DATABASE TO Mary;
B. Een machtiging op serverniveau verlenen voor een aanmelding
In het volgende voorbeeld wordt een machtiging op serverniveau verleend voor aanmelding bij een server-principal (een andere aanmelding).
GRANT VIEW DEFINITION ON LOGIN::Ted TO Mary;
C. Een machtiging op databaseniveau verlenen aan een gebruiker
In het volgende voorbeeld wordt een machtiging op databaseniveau aan een gebruiker verleend aan een database-principal (een andere gebruiker).
GRANT VIEW DEFINITION ON USER::[Ted] TO Mary;
D. Een schemamachtiging verlenen, weigeren en intrekken
De volgende GRANT verklaring geeft Yuen de mogelijkheid om gegevens te selecteren uit elke tabel of weergave in het dbo-schema.
GRANT SELECT ON SCHEMA::dbo TO [Yuen];
De volgende DENY instructie voorkomt dat Yuen gegevens uit een tabel of weergave in het dbo-schema kan selecteren. Yuen kan de gegevens niet lezen, zelfs niet als hij op een andere manier toestemming heeft, bijvoorbeeld via een rollidmaatschap.
DENY SELECT ON SCHEMA::dbo TO [Yuen];
De volgende REVOKE verklaring verwijdert de DENY toestemming. De expliciete machtigingen van Yuen zijn nu neutraal. Yuen kan mogelijk gegevens uit elke tabel selecteren via een andere impliciete machtiging, zoals een rollidmaatschap.
REVOKE SELECT ON SCHEMA::dbo TO [Yuen];
E. De optionele OBJECT:-component demonstreren
Omdat OBJECT de standaardklasse voor een machtigingsinstructie is, zijn de volgende twee instructies hetzelfde. De component OBJECT:: is optioneel.
GRANT UPDATE ON OBJECT::dbo.StatusTable TO [Ted];
GRANT UPDATE ON dbo.StatusTable TO [Ted];