Dela via


BEVILJA behörigheter för databasens huvudnamn (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 Förhandsversion av Microsoft Fabric

Beviljar behörigheter för en databasanvändare, databasroll eller programroll i SQL Server.

Transact-SQL syntaxkonventioner

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
Anger en behörighet som kan beviljas för databasens huvudnamn. En lista över behörigheterna finns i avsnittet Kommentarer senare i det här avsnittet.

USER ::database_user
Anger klassen och namnet på den användare där behörigheten beviljas. Omfångskvalificeraren (::) krävs.

ROLE ::database_role
Anger klassen och namnet på den roll som behörigheten beviljas för. Omfångskvalificeraren (::) krävs.

PROGRAMROLL ::application_role

Anger klassen och namnet på den programroll som behörigheten beviljas för. Omfångskvalificeraren (::) krävs.

MED ALTERNATIVET BEVILJA
Anger att huvudkontot också kommer att ges möjlighet att bevilja den angivna behörigheten till andra huvudnamn.

AS-database_principal <>
Anger ett huvudnamn från vilket huvudnamnet som kör den här frågan härleder sin rätt att bevilja behörigheten.

Database_user
Anger en databasanvändare.

Database_role
Anger en databasroll.

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

Anger en programroll.

Database_user_mapped_to_Windows_User
Anger en databasanvändare som mappats till en Windows-användare.

Database_user_mapped_to_Windows_Group

Anger en databasanvändare som mappats till en Windows-grupp.

Database_user_mapped_to_certificate

Anger en databasanvändare som mappats till ett certifikat.

Database_user_mapped_to_asymmetric_key

Anger en databasanvändare som mappats till en asymmetrisk nyckel.

Database_user_with_no_login
Anger en databasanvändare utan motsvarande huvudnamn på servernivå.

Remarks

Information om databasobjekt visas i sys.database_principals katalogvyn. Information om behörigheter på databasnivå visas i sys.database_permissions katalogvyn.

Databasanvändarbehörigheter

En databasanvändare är en databasnivå som kan säkras av databasen som är dess överordnade i behörighetshierarkin. De mest specifika och begränsade behörigheter som kan beviljas för en databasanvändare visas i följande tabell, tillsammans med de mer allmänna behörigheter som omfattar dem under implikation.

Databasanvändarbehörighet Underförstådd av databasanvändarbehörighet Underförstådd av databasbehörighet
CONTROL CONTROL CONTROL
IMPERSONATE CONTROL CONTROL
ALTER CONTROL ÄNDRA ALLA ANVÄNDARE
VIEW DEFINITION CONTROL VIEW DEFINITION

Behörigheter för databasroll

En databasroll är en databasnivå som kan säkras av databasen som är dess överordnade i behörighetshierarkin. De mest specifika och begränsade behörigheter som kan beviljas för en databasroll visas i följande tabell, tillsammans med de mer allmänna behörigheter som omfattar dem under implikation.

Behörighet för databasroll Underförstådd av behörighet för databasroll Underförstådd av databasbehörighet
CONTROL CONTROL CONTROL
TAKE OWNERSHIP CONTROL CONTROL
ALTER CONTROL ÄNDRA VILKEN ROLL SOM HELST
VIEW DEFINITION CONTROL VIEW DEFINITION

Behörigheter för programroller

En programroll är en databasnivå som kan säkras av databasen som är dess överordnade i behörighetshierarkin. De mest specifika och begränsade behörigheter som kan beviljas för en programroll visas i följande, tillsammans med de mer allmänna behörigheter som omfattar dem under implikation.

Behörighet för programroll Underförstådd av programrollbehörighet Underförstådd av databasbehörighet
CONTROL CONTROL CONTROL
ALTER CONTROL ÄNDRA VILKEN PROGRAMROLL SOM HELST
VIEW DEFINITION CONTROL VIEW DEFINITION

Permissions

Beviljaren (eller det huvudnamn som anges med ALTERNATIVET AS) måste ha antingen behörigheten själv med GRANT OPTION eller en högre behörighet som innebär att behörigheten beviljas.

Om du använder AS-alternativet gäller följande ytterligare krav.

AS granting_principal Ytterligare behörighet krävs
Database user PERSONIFIERA behörighet för användaren, medlemskap i db_securityadmin fast databasroll, medlemskap i db_owner fast databasroll eller medlemskap i den fasta serverrollen sysadmin.
Databasanvändare mappad till en Windows-användare PERSONIFIERA behörighet för användaren, medlemskap i db_securityadmin fast databasroll, medlemskap i db_owner fast databasroll eller medlemskap i den fasta serverrollen sysadmin.
Databasanvändare mappad till en Windows-grupp Medlemskap i Windows-gruppen, medlemskap i db_securityadmin fast databasroll, medlemskap i db_owner fast databasroll eller medlemskap i den fasta serverrollen sysadmin.
Databasanvändare mappad till ett certifikat Medlemskap i db_securityadmin fast databasroll, medlemskap i db_owner fast databasroll eller medlemskap i den fasta serverrollen sysadmin.
Databasanvändare mappad till en asymmetrisk nyckel Medlemskap i den db_securityadminfixed databasrollen, medlemskap i db_owner fast databasroll eller medlemskap i den fasta serverrollen sysadmin.
Databasanvändaren har inte mappats till något serverhuvudnamn PERSONIFIERA behörighet för användaren, medlemskap i db_securityadmin fast databasroll, medlemskap i db_owner fast databasroll eller medlemskap i den fasta serverrollen sysadmin.
Database role ÄNDRA behörighet för rollen, medlemskap i den db_securityadminfixed databasrollen, medlemskap i db_owner fast databasroll eller medlemskap i den fasta serverrollen sysadmin.
Application role ALTER-behörighet för rollen, medlemskap i db_securityadmin fast databasroll, medlemskap i db_owner fast databasroll eller medlemskap i den fasta serverrollen sysadmin.

Huvudnamn som har KONTROLL-behörighet för en skyddsbar kan bevilja behörighet för den skyddsbara filen.

Beviljar kontrollbehörighet för en databas, till exempel medlemmar i den db_owner fasta databasrollen, kan bevilja alla behörigheter för alla skyddsbara i databasen.

Examples

A. Bevilja KONTROLL-behörighet för en användare till en annan användare

I följande exempel ges CONTROL behörighet AdventureWorks2022 för användaren Wanida till användaren RolandX.

GRANT CONTROL ON USER::Wanida TO RolandX;  
GO  

B. Bevilja VIEW DEFINITION-behörighet för en roll till en användare med GRANT OPTION

I följande exempel ges VIEW DEFINITION behörighet för AdventureWorks2022 rollen SammamishParking tillsammans med GRANT OPTION databasanvändaren JinghaoLiu.

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

C. Bevilja IMPERSONATE-behörighet för en användare till en programroll

I följande exempel ges IMPERSONATE behörighet för användare HamithaL till AdventureWorks2022 programrollen AccountsPayable17.

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

GRANT IMPERSONATE ON USER::HamithaL TO AccountsPayable17;  
GO    

See Also

Neka behörigheter för databasens huvudnamn (Transact-SQL)
ÅTERKALLA behörigheter för databasens huvudnamn (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
SKAPA ANVÄNDARE (Transact-SQL)
SKAPA PROGRAMROLL (Transact-SQL)
SKAPA ROLL (Transact-SQL)
GRANT (Transact-SQL)
Behörigheter (Databasmotor)
huvudnamn (databasmotor)