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 en tabell, vy, tabellvärdesfunktion, lagrad procedur, utökad lagrad procedur, skalär funktion, aggregerad funktion, tjänstkö eller synonym.
Transact-SQL syntaxkonventioner
Syntax
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column_name [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column_name [ ,...n ] ) ]
<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 ett schemabaserat objekt. En lista över behörigheterna finns i Kommentarer.
ALL
Att bevilja ALLA beviljar inte alla möjliga behörigheter. Att bevilja ALLA motsvarar att bevilja alla ANSI-92-behörigheter som gäller för det angivna objektet. Innebörden av ALLA varierar enligt följande:
- Skalära funktionsbehörigheter: EXECUTE, REFERENCES.
- Funktionsbehörigheter för tabellvärde: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Behörigheter för lagrad procedur: KÖR.
- Tabellbehörigheter: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Visa behörigheter: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
Caution
ALL-behörigheten är inaktuell och underhålls endast för kompatibilitet.
PRIVILEGES
Ingår för ANSI-92-efterlevnad. Ändrar inte beteendet för ALLA.
column_name
Anger namnet på en kolumn i en tabell, vy eller tabellvärdesfunktion som behörigheten beviljas för. Parenteserna ( ) krävs. Endast SELECT-, REFERENCES-, UPDATE- och UNMASK-behörigheter kan beviljas för en kolumn. column_name kan anges i behörighetssatsen eller efter det skyddsbara namnet.
Caution
En nekande på tabellnivå har inte företräde framför ett GRANT på kolumnnivå. Den här inkonsekvensen i behörighetshierarkin har bevarats för bakåtkompatibilitet.
PÅ [ OBJEKT :: ] [ schema_name ] . object_name
Anger det objekt som behörigheten beviljas för. Object-frasen är valfri om schema_name anges. Om object-frasen används krävs omfångskvalificeraren (::). Om schema_name inte anges används standardschemat. Om schema_name anges krävs schemaomfattningskvalificeraren (.).
TILL <database_principal>
Anger det huvudnamn som behörigheten beviljas till.
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
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
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 REFERENCE 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 skulle användaren också behöva SELECT behörighet för den beräknade kolumnen.
Information om objekt visas i olika katalogvyer. Mer information finns i Objektkatalogvyer (Transact-SQL).
Ett objekt är en skyddsnivå på schemanivå som ingår i schemat som är dess överordnade objekt i behörighetshierarkin. De mest specifika och begränsade behörigheter som kan beviljas för ett objekt visas i följande tabell, tillsammans med de mer allmänna behörigheter som omfattar dem underförstått.
| Object permission | Underförstådd av objektbehörighet | Underförstådd av schemabehörighet |
|---|---|---|
ALTER |
CONTROL |
ALTER |
CONTROL |
CONTROL |
CONTROL |
DELETE |
CONTROL |
DELETE |
EXECUTE |
CONTROL |
EXECUTE |
INSERT |
CONTROL |
INSERT |
RECEIVE |
CONTROL |
CONTROL |
REFERENCES |
CONTROL |
REFERENCES |
SELECT |
RECEIVE |
SELECT |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
UPDATE |
CONTROL |
UPDATE |
VIEW CHANGE TRACKING |
CONTROL |
VIEW CHANGE TRACKING |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Schemabindning stöds inte i Azure Synapse Analytics, vilket kan leda till oväntat beteende när underliggande objekt ändras och behörigheter har beviljats till en vy. Mer information finns i T-SQL-vyer med dedikerad SQL-pool och serverlös SQL-pool i Azure Synapse Analytics.
Permissions
Beviljaren (eller det huvudnamn som anges med ALTERNATIVET AS) måste ha antingen själva behörigheten med GRANT OPTIONeller 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 | Ytterligare behörighet krävs |
|---|---|
| Database user |
IMPERSONATE behörighet för användaren, medlemskap i den fasta databasrollen db_securityadmin , medlemskap i den fasta databasrollen db_owner eller medlemskap i den fasta serverrollen sysadmin . |
| Databasanvändare mappad till en Windows-inloggning |
IMPERSONATE behörighet för användaren, medlemskap i den fasta databasrollen db_securityadmin , medlemskap i den fasta databasrollen db_owner eller medlemskap i den fasta serverrollen sysadmin . |
| Databasanvändare mappad till en Windows-grupp | Medlemskap i Windows-gruppen, medlemskap i den fasta databasrollen db_securityadmin , medlemskap i den fasta databasrollen db_owner eller medlemskap i den fasta serverrollen sysadmin . |
| Databasanvändare mappad till ett certifikat | Medlemskap i den fasta databasrollen db_securityadmin , medlemskap i den fasta databasrollen db_owner eller medlemskap i den fasta serverrollen sysadmin . |
| Databasanvändare mappad till en asymmetrisk nyckel | Medlemskap i den fasta databasrollen db_securityadmin , medlemskap i den fasta databasrollen db_owner eller medlemskap i den fasta serverrollen sysadmin . |
| Databasanvändaren har inte mappats till något serverhuvudnamn |
IMPERSONATE behörighet för användaren, medlemskap i den fasta databasrollen db_securityadmin , medlemskap i den fasta databasrollen db_owner eller medlemskap i den fasta serverrollen sysadmin . |
| Database role |
ALTER behörighet för rollen, medlemskap i den fasta databasrollen db_securityadmin , medlemskap i den fasta databasrollen db_owner eller medlemskap i den fasta serverrollen sysadmin . |
| Application role |
ALTER behörighet för rollen, medlemskap i den fasta databasrollen db_securityadmin , medlemskap i den fasta databasrollen db_owner eller medlemskap i den fasta serverrollen sysadmin . |
Examples
A. Bevilja SELECT-behörighet i en tabell
I följande exempel ges SELECT behörighet till användare RosaQdM i tabellen Person.Address i AdventureWorks2022 databasen.
Det här exemplet som skrivet fungerar inte i Microsoft Fabric eftersom det använder en användare för en SQL-autentiserad inloggning, men samma exempel skulle fungera för en Microsoft Entra ID Fabric-användare, RosaQdM@contoso.comtill exempel .
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B. Bevilja EXECUTE-behörighet för en lagrad procedur
I följande exempel ges EXECUTE behörighet för lagrad procedur HumanResources.uspUpdateEmployeeHireInfo till en programroll med namnet Recruiting11.
USE AdventureWorks2022;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C. Bevilja REFERENSER-behörighet i en vy med ALTERNATIVET BEVILJA
I följande exempel ges REFERENCES behörighet för kolumnen BusinessEntityID i vyn HumanResources.vEmployee till användaren Wanida med GRANT OPTION.
Det här exemplet som skrivet fungerar inte i Microsoft Fabric eftersom det använder en användare för en SQL-autentiserad inloggning, men samma exempel skulle fungera för en Microsoft Entra ID Fabric-användare, Wanida@contoso.comtill exempel .
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
D. Bevilja SELECT-behörighet i en tabell utan att använda OBJECT-frasen
I följande exempel ges SELECT behörighet till användare RosaQdM i tabellen Person.Address i AdventureWorks2022 databasen.
Det här exemplet som skrivet fungerar inte i Microsoft Fabric eftersom det använder en användare för en SQL-autentiserad inloggning, men samma exempel skulle fungera för en Microsoft Entra ID Fabric-användare, RosaQdM@contoso.comtill exempel .
GRANT SELECT ON Person.Address TO RosaQdM;
GO
E. Bevilja SELECT-behörighet i en tabell till ett domänkonto
I följande exempel ges SELECT behörighet till användare AdventureWorks2022\RosaQdM i tabellen Person.Address i AdventureWorks2022 databasen.
Det här exemplet som skrivs fungerar inte i Microsoft Fabric eftersom det använder ett domänkonto, men samma exempel skulle fungera för en Microsoft Entra ID Fabric-användare, till exempel RosaQdM@contoso.com.
GRANT SELECT ON Person.Address TO [AdventureWorks2022\RosaQdM];
GO
F. Bevilja EXECUTE-behörighet för en procedur till en roll
Följande exempel skapar en roll och ger EXECUTE sedan behörighet till rollen för proceduren uspGetBillOfMaterialsAdventureWorks2022 i databasen.
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
G. Bevilja UNMASK-behörighet för en kolumn
I följande exempel ges behörigheten UNMASK , en del av dynamisk datamaskering, för kolumnen email i tabellen Data.Membership till användaren OutreachCoordinator.
Dynamisk datamaskering stöds för närvarande inte i Microsoft Fabric.
GRANT UNMASK ON OBJECT::Data.Membership (email) to OutreachCoordinator;
GO
Related content
- Avslå objektbehörigheter (Transact-SQL)
- ÅTERKALLA objektbehörigheter (Transact-SQL)
- objektkatalogvyer (Transact-SQL)
- Behörigheter (Databasmotor)
- huvudnamn (databasmotor)
- Securables
- sys.fn_builtin_permissions (Transact-SQL)
- HAS_PERMS_BY_NAME (Transact-SQL)
- sys.fn_my_permissions (Transact-SQL)
- Dynamisk dataavmaskning
- Row-Level security