Dela via


BEVILJA schemabehörigheter (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 ett schema.

Transact-SQL syntaxkonventioner

Syntax

GRANT permission  [ ,...n ] ON SCHEMA :: schema_name  
    TO database_principal [ ,...n ]  
    [ WITH GRANT OPTION ]  
    [ AS granting_principal ]  

Arguments

permission
Anger en behörighet som kan beviljas för ett schema. En lista över behörigheterna finns i avsnittet Kommentarer senare i det här avsnittet..

PÅ SCHEMA ::schema_name
Anger det schema som behörigheten beviljas för. Omfångskvalificeraren :: krävs.

database_principal
Anger det huvudnamn som behörigheten beviljas till. Något av följande:

  • database user
  • database role
  • application role
  • databasanvändare mappad till en Windows-inloggning
  • databasanvändare mappad till en Windows-grupp
  • databasanvändare mappad till ett certifikat
  • databasanvändare mappad till en asymmetrisk nyckel
  • databasanvändaren har inte mappats till ett serverhuvudnamn.

GRANT OPTION
Anger att huvudkontot också kommer att ges möjlighet att bevilja den angivna behörigheten till andra huvudnamn.

AS granting_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. Något av följande:

  • database user
  • database role
  • application role
  • databasanvändare mappad till en Windows-inloggning
  • databasanvändare mappad till en Windows-grupp
  • databasanvändare mappad till ett certifikat
  • databasanvändare mappad till en asymmetrisk nyckel
  • databasanvändaren har inte mappats till ett serverhuvudnamn.

Remarks

Important

En kombination av ALTER- och REFERENCE-behörigheter kan i vissa fall göra det möjligt för den som beviljar att visa data eller köra obehöriga funktioner. Till exempel: En användare med ALTER-behörighet i en tabell och REFERENS-behörighet för en funktion kan skapa en beräknad kolumn över en funktion och låta den köras. I det här fallet måste användaren också ha SELECT-behörighet för den beräknade kolumnen.

Ett schema ä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 ett schema visas nedan, tillsammans med de mer allmänna behörigheter som omfattar dem under implikation.

Schema permission Underförstådd av schemabehörighet Underförstådd av databasbehörighet
ALTER CONTROL ÄNDRA VALFRITT SCHEMA
CONTROL CONTROL CONTROL
CREATE SEQUENCE ALTER ÄNDRA VALFRITT SCHEMA
DELETE CONTROL DELETE
EXECUTE CONTROL EXECUTE
INSERT CONTROL INSERT
REFERENCES CONTROL REFERENCES
SELECT CONTROL SELECT
TAKE OWNERSHIP CONTROL CONTROL
UPDATE CONTROL UPDATE
VISA ÄNDRINGSSPÅRNING CONTROL CONTROL
VIEW DEFINITION CONTROL VIEW DEFINITION

Caution

En användare med ALTER-behörighet i ett schema kan använda ägarskapslänkning för att få åtkomst till skyddsbara objekt i andra scheman, inklusive skyddsbara objekt som användaren uttryckligen nekas åtkomst till. Det beror på att ägarskapslänkning kringgår behörighetskontroller på refererade objekt när de ägs av det huvudnamn som äger objekten som refererar till dem. En användare med ALTER-behörighet i ett schema kan skapa procedurer, synonymer och vyer som ägs av schemats ägare. Dessa objekt kommer att ha åtkomst (via ägarskapslänkning) till information i andra scheman som ägs av schemats ägare. När det är möjligt bör du undvika att bevilja ALTER-behörighet för ett schema om schemats ägare också äger andra scheman.

Det här problemet kan till exempel inträffa i följande scenarier. Dessa scenarier förutsätter att en användare, kallad U1, har ALTER-behörigheten för S1-schemat. U1-användaren nekas åtkomst till ett tabellobjekt, som kallas T1, i schemat S2. S1-schemat och S2-schemat ägs av samma ägare.

U1-användaren har behörigheten SKAPA PROCEDUR för databasen och behörigheten KÖR i S1-schemat. Därför kan U1-användaren skapa en lagrad procedur och sedan komma åt det nekade objektet T1 i den lagrade proceduren.

U1-användaren har behörigheten SKAPA SYNONYM för databasen och SELECT-behörigheten för S1-schemat. Därför kan U1-användaren skapa en synonym i S1-schemat för det nekade objektet T1 och sedan komma åt det nekade objektet T1 med hjälp av synonymen.

U1-användaren har behörigheten CREATE VIEW för databasen och SELECT-behörigheten för S1-schemat. Därför kan U1-användaren skapa en vy i S1-schemat för att fråga efter data från det nekade objektet T1 och sedan komma åt det nekade objektet T1 med hjälp av vyn.

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 dessa 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-inloggning 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 db_securityadmin fast databasroll, 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 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.
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.

Objektägare kan bevilja behörigheter för de objekt de äger. Huvudkonton med KONTROLL-behörighet för en skyddsbar kan bevilja behörighet för den skyddsbara filen.

Beviljare av CONTROL SERVER-behörighet, till exempel medlemmar i den fasta sysadmin-serverrollen, kan bevilja alla behörigheter för alla som kan skyddas på servern. 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. Beviljare av CONTROL-behörighet för ett schema kan bevilja alla behörigheter för alla objekt i schemat.

Examples

A. Bevilja INSERT-behörighet för schema HumanResources till gäst

GRANT INSERT ON SCHEMA :: HumanResources TO guest;  

B. Bevilja SELECT-behörighet för schemaperson till databasanvändaren WilJo

GRANT SELECT ON SCHEMA :: Person TO WilJo WITH GRANT OPTION;  

See Also

Neka schemabehörigheter (Transact-SQL)
ÅTERKALLA schemabehörigheter (Transact-SQL)
GRANT (Transact-SQL)
Behörigheter (Databasmotor)
huvudnamn (databasmotor)
SKAPA CERTIFIKAT (Transact-SQL)
SKAPA ASYMMETRISK NYCKEL (Transact-SQL)
SKAPA PROGRAMROLL (Transact-SQL)
Encryption Hierarchy
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)