Delen via


Machtigingen voor database-principal 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 databasegebruiker, databaserol of toepassingsrol in SQL Server.

Transact-SQL syntaxis-conventies

Syntax

GRANT permission [ ,...n ]    
    ON   
    {  [ USER :: database_user ]  
     | [ ROLE :: database_role ]  
     | [ APPLICATION ROLE :: application_role ]  
    }  
    TO <database_principal> [ ,...n ]  
       [ WITH GRANT OPTION ]  
       [ AS <database_principal> ]  
  
<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

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

USER ::database_user
Hiermee geeft u de klasse en naam van de gebruiker waarvoor de machtiging wordt verleend. De kwalificatie voor het bereik (::) is vereist.

ROLE ::database_role
Hiermee geeft u de klasse en naam op van de rol waarvoor de machtiging wordt verleend. De kwalificatie voor het bereik (::) is vereist.

TOEPASSINGSROL ::application_role

Hiermee geeft u de klasse en naam op van de toepassingsrol waarvoor de machtiging wordt verleend. De kwalificatie voor het bereik (::) is vereist.

MET DE OPTIE VERLENEN
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_role
Van toepassing op: SQL Server 2008 (10.0.x) en hoger, SQL Database.

Hiermee geeft u een toepassingsrol op.

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

Database_user_mapped_to_Windows_Group

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

Database_user_mapped_to_certificate

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

Database_user_mapped_to_asymmetric_key

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

Informatie over database-principals is zichtbaar in de sys.database_principals catalogusweergave. Informatie over machtigingen op databaseniveau is zichtbaar in de sys.database_permissions catalogusweergave.

Machtigingen voor databasegebruikers

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

Machtiging voor databasegebruiker Impliciet door databasegebruikersmachtiging Impliciet door databasemachtiging
CONTROL CONTROL CONTROL
IMPERSONATE CONTROL CONTROL
ALTER CONTROL WILLEKEURIGE GEBRUIKER WIJZIGEN
VIEW DEFINITION CONTROL VIEW DEFINITION

Machtigingen voor databaserollen

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

Machtiging voor databaserol Impliciet door machtiging voor databaserol Impliciet door databasemachtiging
CONTROL CONTROL CONTROL
TAKE OWNERSHIP CONTROL CONTROL
ALTER CONTROL ELKE ROL WIJZIGEN
VIEW DEFINITION CONTROL VIEW DEFINITION

Machtigingen voor toepassingsrol

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

Machtiging voor toepassingsrol Impliciet door machtiging voor toepassingsrol Impliciet door databasemachtiging
CONTROL CONTROL CONTROL
ALTER CONTROL ELKE TOEPASSINGSROL WIJZIGEN
VIEW DEFINITION CONTROL VIEW DEFINITION

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-gebruiker 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_securityadminfixed 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_securityadminfixed 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.

Principals met CONTROL-machtigingen voor een beveiligbaar apparaat kunnen machtigingen verlenen voor die beveiligbare.

Grantees van CONTROL-machtigingen voor een database, zoals leden van de db_owner vaste databaserol, kunnen elke machtiging verlenen voor elke beveiligbare database in de database.

Examples

A. CONTROL-machtiging verlenen aan een gebruiker aan een andere gebruiker

In het volgende voorbeeld wordt een gebruiker Wanida toestemming AdventureWorks2022 verleend CONTROL aan de gebruikerRolandX.

GRANT CONTROL ON USER::Wanida TO RolandX;  
GO  

B. VIEW DEFINITION-machtiging verlenen voor een rol aan een gebruiker met GRANT OPTION

Het volgende voorbeeld verleent VIEW DEFINITION machtigingen voor AdventureWorks2022 rollen SammamishParking samen met GRANT OPTION een databasegebruiker JinghaoLiu.

GRANT VIEW DEFINITION ON ROLE::SammamishParking   
    TO JinghaoLiu WITH GRANT OPTION;  
GO  

C. IMITATIE-machtigingen verlenen aan een gebruiker aan een toepassingsrol

In het volgende voorbeeld wordt toestemming verleend IMPERSONATE aan de gebruiker HamithaL aan de AdventureWorks2022 toepassingsrol AccountsPayable17.

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

GRANT IMPERSONATE ON USER::HamithaL TO AccountsPayable17;  
GO    

See Also

Machtigingen voor database-principal weigeren (Transact-SQL)
Machtigingen voor database-principal intrekken (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
GEBRUIKER AANMAKEN (Transact-SQL)
TOEPASSINGSROL MAKEN (Transact-SQL)
ROL AANMAKEN (Transact-SQL)
GRANT (Transact-SQL)
Machtigingen (Database Engine)
Principals (Databasemotor)