Delen via


Databasemachtigingen verlenen (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

Verleent machtigingen voor een database in SQL Server.

Transact-SQL syntaxis-conventies

Syntax


GRANT <permission> [ ,...n ]
    TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ]
    [ AS <database_principal> ]

<permission>::=
permission | ALL [ PRIVILEGES ]

<database_principal> ::=
    Database_user
  | Database_role
  | Application_role
  | Database_user_mapped_to_Windows_User
  | Database_user_mapped_to_Windows_Group
  | Database_user_mapped_to_certificate
  | Database_user_mapped_to_asymmetric_key
  | Database_user_with_no_login

Arguments

toestemming Hiermee geeft u een machtiging op die kan worden verleend voor een database. Zie de sectie Opmerkingen verderop in dit onderwerp voor een lijst met machtigingen.

MET DEZE optie worden niet alle mogelijke machtigingen verleend. Het verlenen van ALL is gelijk aan het verlenen van de volgende machtigingen: BACK-UPDATABASE, BACK-UPLOGBOEK, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE en CREATE VIEW.

BEVOEGDHEDEN opgenomen voor ANSI-92-naleving. Het gedrag van ALL wordt niet gewijzigd.

MET GRANT OPTION Geeft aan dat de principal ook de mogelijkheid krijgt om de opgegeven machtiging aan andere principals te verlenen.

AS <database_principal> Hiermee geeft u een principal op waaruit de principal die deze query uitvoert, het recht heeft om de machtiging te verlenen.

Database_user Hiermee geeft u een databasegebruiker.

Database_role Hiermee geeft u een databaserol op.

Application_rolevan toepassing op: SQL Server 2008 (10.0.x) en hoger, SQL Database

Hiermee geeft u een toepassingsrol op.

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

Hiermee geeft u een databasegebruiker die is toegewezen aan een Windows-gebruiker.

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

Hiermee geeft u een databasegebruiker die is toegewezen aan een Windows-groep.

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

Hiermee geeft u een databasegebruiker die is toegewezen aan een certificaat.

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

Hiermee geeft u een databasegebruiker die is toegewezen aan een asymmetrische sleutel.

Database_user_with_no_login Hiermee geeft u een databasegebruiker zonder bijbehorende principal op serverniveau op.

Remarks

Important

Een combinatie van ALTER- en REFERENCE-machtigingen in sommige gevallen kan de verlenende gebruiker toestaan om gegevens te bekijken of niet-geautoriseerde functies uit te voeren. Bijvoorbeeld: Een gebruiker met de machtiging ALTER voor een tabel en EEN VERWIJZINGsmachtiging voor een functie kan een berekende kolom maken via een functie en deze laten uitvoeren. In dit geval moet de gebruiker ook een SELECT-machtiging hebben voor de berekende kolom.

Een database is een beveiligbaar dat is opgenomen door de server die het bovenliggende element in de machtigingshiërarchie is. De meest specifieke en beperkte machtigingen die voor een database kunnen worden verleend, worden vermeld in de volgende tabel, samen met de meer algemene machtigingen die deze door implicatie bevatten.

Database permission Impliciet door databasemachtiging Impliciet door servermachtiging
DE DATABASE BULKOPERATIES BEHEEREN
Van toepassing op: SQL Database.
CONTROL CONTROL SERVER
ALTER CONTROL ELKE DATABASE WIJZIGEN
ELKE TOEPASSINGSROL WIJZIGEN ALTER CONTROL SERVER
ELKE ASSEMBLY WIJZIGEN ALTER CONTROL SERVER
ASYMMETRISCHE SLEUTEL WIJZIGEN ALTER CONTROL SERVER
ELK CERTIFICAAT WIJZIGEN ALTER CONTROL SERVER
EEN KOLOMVERSLEUTELINGSSLEUTEL WIJZIGEN ALTER CONTROL SERVER
EEN KOLOMHOOFDSLEUTELDEFINITIE WIJZIGEN ALTER CONTROL SERVER
EEN CONTRACT WIJZIGEN ALTER CONTROL SERVER
DATABASECONTROLE WIJZIGEN ALTER SERVERCONTROLE WIJZIGEN
EEN DDL-TRIGGER VOOR DATABASES WIJZIGEN ALTER CONTROL SERVER
ELKE MELDING VOOR DATABASE-GEBEURTENIS WIJZIGEN ALTER GEBEURTENISMELDING WIJZIGEN
EEN GEBEURTENISSESSIE VOOR DE DATABASE WIJZIGEN
Van toepassing op: SQL Database.
ALTER EEN GEBEURTENISSESSIE WIJZIGEN
CONFIGURATIE VAN DATABASEBEREIK WIJZIGEN
van toepassing op: SQL Server 2016 (13.x) en hoger, SQL Database.
CONTROL CONTROL SERVER
ELKE DATASPACE WIJZIGEN ALTER CONTROL SERVER
ELKE EXTERNE GEGEVENSBRON WIJZIGEN ALTER CONTROL SERVER
WIJZIGEN VAN ELKE EXTERNE BESTANDSINDELING ALTER CONTROL SERVER
EEN EXTERNE BIBLIOTHEEK WIJZIGEN
Van toepassing op: SQL Server 2017 (14.x).
CONTROL CONTROL SERVER
ELKE VOLLEDIGE TEKSTCATALOGUS WIJZIGEN ALTER CONTROL SERVER
EEN MASKER WIJZIGEN CONTROL CONTROL SERVER
ELK BERICHTTYPE WIJZIGEN ALTER CONTROL SERVER
EEN EXTERNE SERVICEBINDING WIJZIGEN ALTER CONTROL SERVER
ELKE ROL WIJZIGEN ALTER CONTROL SERVER
ELKE ROUTE WIJZIGEN ALTER CONTROL SERVER
EEN SCHEMA WIJZIGEN ALTER CONTROL SERVER
BEVEILIGINGSBELEID WIJZIGEN
Van toepassing op: Azure SQL Database.
CONTROL CONTROL SERVER
EVENTUELE GEVOELIGHEIDSCLASSIFICATIE WIJZIGEN
Van toepassing op: SQL Server (SQL Server 2019 en hoger), Azure SQL Database.
CONTROL CONTROL SERVER
ELKE SERVICE WIJZIGEN ALTER CONTROL SERVER
ELKE SYMMETRISCHE SLEUTEL WIJZIGEN ALTER CONTROL SERVER
WILLEKEURIGE GEBRUIKER WIJZIGEN ALTER CONTROL SERVER
AUTHENTICATE CONTROL AUTHENTICATE SERVER
BACKUP DATABASE CONTROL CONTROL SERVER
BACKUP LOG CONTROL CONTROL SERVER
CHECKPOINT CONTROL CONTROL SERVER
CONNECT CONNECT REPLICATION CONTROL SERVER
CONNECT REPLICATION CONTROL CONTROL SERVER
CONTROL CONTROL CONTROL SERVER
CREATE AGGREGATE ALTER CONTROL SERVER
EEN EXTERNE BIBLIOTHEEK MAKEN
Van toepassing op: SQL Server 2017 (14.x).
CONTROL CONTROL SERVER
CREATE ASSEMBLY ELKE ASSEMBLY WIJZIGEN CONTROL SERVER
ASYMMETRISCHE SLEUTEL MAKEN ASYMMETRISCHE SLEUTEL WIJZIGEN CONTROL SERVER
CREATE CERTIFICATE ELK CERTIFICAAT WIJZIGEN CONTROL SERVER
CREATE CONTRACT EEN CONTRACT WIJZIGEN CONTROL SERVER
CREATE DATABASE CONTROL EEN DATABASE MAKEN
DDL-GEBEURTENISMELDING VOOR DATABASE MAKEN ELKE MELDING VOOR DATABASE-GEBEURTENIS WIJZIGEN DDL-GEBEURTENISMELDING MAKEN
CREATE DEFAULT ALTER CONTROL SERVER
VOLLEDIGE TEKSTCATALOGUS MAKEN ELKE VOLLEDIGE TEKSTCATALOGUS WIJZIGEN CONTROL SERVER
CREATE FUNCTION ALTER CONTROL SERVER
BERICHTTYPE MAKEN ELK BERICHTTYPE WIJZIGEN CONTROL SERVER
CREATE PROCEDURE ALTER CONTROL SERVER
CREATE QUEUE ALTER CONTROL SERVER
EXTERNE SERVICEBINDING MAKEN EEN EXTERNE SERVICEBINDING WIJZIGEN CONTROL SERVER
CREATE ROLE ELKE ROL WIJZIGEN CONTROL SERVER
CREATE ROUTE ELKE ROUTE WIJZIGEN CONTROL SERVER
CREATE RULE ALTER CONTROL SERVER
CREATE SCHEMA EEN SCHEMA WIJZIGEN CONTROL SERVER
CREATE SERVICE ELKE SERVICE WIJZIGEN CONTROL SERVER
SYMMETRISCHE SLEUTEL MAKEN ELKE SYMMETRISCHE SLEUTEL WIJZIGEN CONTROL SERVER
CREATE SYNONYM ALTER CONTROL SERVER
CREATE TABLE ALTER CONTROL SERVER
CREATE TYPE ALTER CONTROL SERVER
CREATE VIEW ALTER CONTROL SERVER
XML-SCHEMAVERZAMELING MAKEN ALTER CONTROL SERVER
DELETE CONTROL CONTROL SERVER
EXECUTE CONTROL CONTROL SERVER
EEN EXTERN EINDPUNT UITVOEREN
Van toepassing op: Azure SQL Database.
CONTROL CONTROL SERVER
EEN EXTERN SCRIPT UITVOEREN
Van toepassing op: SQL Server 2016 (13.x).
CONTROL CONTROL SERVER
EXTERN SCRIPT UITVOEREN
van toepassing op: SQL Server 2019 (15.x).
EEN EXTERN SCRIPT UITVOEREN CONTROL SERVER
INSERT CONTROL CONTROL SERVER
DATABASEVERBINDING BEËINDIGEN
Van toepassing op: Azure SQL Database.
CONTROL ELKE VERBINDING WIJZIGEN
REFERENCES CONTROL CONTROL SERVER
SELECT CONTROL CONTROL SERVER
SHOWPLAN CONTROL ALTER TRACE
MELDINGEN VOOR ABONNEREN-QUERY'S CONTROL CONTROL SERVER
TAKE OWNERSHIP CONTROL CONTROL SERVER
UNMASK CONTROL CONTROL SERVER
UPDATE CONTROL CONTROL SERVER
WEERGEVEN VAN ELKE KOLOMVERSLEUTELINGSSLEUTEL DEFINITIE CONTROL ALLE DEFINITIES BEKIJKEN
EEN KOLOMHOOFDSLEUTELDEFINITIE WEERGEVEN CONTROL ALLE DEFINITIES BEKIJKEN
STATUS VAN DATABASE BEKIJKEN CONTROL SERVERSTATUS BEKIJKEN
VIEW DEFINITION CONTROL ALLE DEFINITIES BEKIJKEN

Permissions

De grantor (of de principal die is opgegeven met de AS-optie) moet de machtiging zelf hebben met GRANT OPTION of een hogere machtiging die impliceert dat de machtiging wordt verleend.

Als u de AS-optie gebruikt, zijn de volgende aanvullende vereisten van toepassing.

AS granting_principal Aanvullende machtiging vereist
Database user IMITATIE-machtiging voor de gebruiker, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverfunctie sysadmin.
Databasegebruiker die is toegewezen aan een Windows-aanmelding IMITATIE-machtiging voor de gebruiker, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverfunctie sysadmin.
Databasegebruiker die is toegewezen aan een Windows-groep Lidmaatschap van de Windows-groep, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverrol sysadmin.
Databasegebruiker die is toegewezen aan een certificaat Lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverrol sysadmin.
Databasegebruiker die is toegewezen aan een asymmetrische sleutel Lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverrol sysadmin.
Databasegebruiker die niet is toegewezen aan een server-principal IMITATIE-machtiging voor de gebruiker, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverfunctie sysadmin.
Database role ALTER-machtiging voor de rol, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverrol sysadmin.
Application role ALTER-machtiging voor de rol, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverrol sysadmin.

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

Grantees van de machtiging CONTROL SERVER, zoals leden van de vaste serverfunctie sysadmin, kunnen elke machtiging verlenen voor elk beveiligbaar apparaat op de server.

Examples

A. Machtigingen verlenen voor het maken van tabellen

Het volgende voorbeeld verleent CREATE TABLE machtigingen voor de AdventureWorks database aan de gebruiker MelanieK.

USE AdventureWorks;
GRANT CREATE TABLE TO MelanieK;
GO

B. SHOWPLAN-machtiging verlenen aan een toepassingsrol

Het volgende voorbeeld verleent SHOWPLAN machtigingen voor de database aan de AdventureWorks2022 toepassingsrol AuditMonitor.

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

USE AdventureWorks2022;
GRANT SHOWPLAN TO AuditMonitor;
GO

C. CREATE VIEW met GRANT OPTION verlenen

In het volgende voorbeeld wordt toestemming verleend CREATE VIEW aan CarmineEs de AdventureWorks2022 gebruiker met het recht om andere principals toe te kennenCREATE VIEW.

USE AdventureWorks2022;
GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;
GO

D. CONTROL-machtigingen verlenen aan een databasegebruiker

Het volgende voorbeeld verleent CONTROL machtigingen voor de AdventureWorks2022 database aan de databasegebruiker Sarah. De gebruiker moet aanwezig zijn in de database en de context moet worden ingesteld op de database.

USE AdventureWorks2022;
GRANT CONTROL ON DATABASE::AdventureWorks2022 TO Sarah;
GO

See Also