Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-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)