Megosztás a következőn keresztül:


GRANT objektumengedélyek (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Engedélyeket ad egy táblához, nézethez, táblaértékű függvényhez, tárolt eljáráshoz, kiterjesztett tárolt eljáráshoz, skaláris függvényhez, összesítő függvényhez, szolgáltatássorhoz vagy szinonimához.

Transact-SQL szintaxis konvenciók

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

Olyan engedélyt ad meg, amely egy séma által tartalmazott objektumon adható meg. Az engedélyek listáját a Megjegyzések című témakörben találja.

ALL

Az ALL megadása nem ad meg minden lehetséges engedélyt. Az ALL megadása egyenértékű a megadott objektumra vonatkozó összes ANSI-92-engedély biztosításával. Az ALL jelentése az alábbiak szerint változik:

  • Skaláris függvény engedélyei: EXECUTE, REFERENCES.
  • Táblaértékű függvényengedélyek: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
  • Tárolt eljárás engedélyei: EXECUTE.
  • Táblaengedélyek: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
  • Engedélyek megtekintése: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

Caution

Az ALL engedély elavult, és csak kompatibilitás céljából van fenntartva.

PRIVILEGES

Az ANSI-92-megfelelőség része. Nem módosítja az ALL viselkedését.

column_name

Egy oszlop nevét adja meg egy táblában, nézetben vagy táblaértékben megadott függvényben, amelyen az engedély meg van adva. A zárójelek ( ) megadása kötelező. Oszlopon csak SELECT, REFERENCES, UPDATE és UNMASK engedélyek adhatóak meg. column_name meg lehet adni az engedélyek záradékában vagy a biztonságos név után.

Caution

A táblaszintű DENY nem élvez elsőbbséget az oszlopszintű GRANT értéknél. Az engedélyhierarchiában ez az inkonzisztencia megmarad a visszamenőleges kompatibilitás érdekében.

A [ TÁRGY :: ] [ schema_name ] . object_name

Azt az objektumot adja meg, amelyen az engedély meg van adva. Az OBJECT kifejezés nem kötelező, ha schema_name van megadva. Ha az OBJECT kifejezést használja, a hatókör-minősítő (::) szükséges. Ha schema_name nincs megadva, a rendszer az alapértelmezett sémát használja. Ha schema_name van megadva, a séma hatókörének minősítője (.) szükséges.

HOGY <database_principal>

Azt a tagot adja meg, amelyhez az engedélyt megadták.

A TÁMOGATÁS LEHETŐSÉGGEL

Azt jelzi, hogy a rendszerbiztonsági tagnak lehetősége lesz arra is, hogy a megadott engedélyt más tagoknak is megadja.

MINT <database_principal>

Megadja azt a főnevet, amelyből a lekérdezést végrehajtó egyszerű felhasználó engedélyt ad az engedély megadására.

Database_user
Adatbázis-felhasználót ad meg.

Database_role
Adatbázis-szerepkört ad meg.

Application_role
Alkalmazásszerepkört határoz meg.

Database_user_mapped_to_Windows_User
Egy Windows-felhasználóhoz hozzárendelt adatbázis-felhasználót határoz meg.

Database_user_mapped_to_Windows_Group
Egy Windows-csoporthoz hozzárendelt adatbázis-felhasználót határoz meg.

Database_user_mapped_to_certificate
Egy tanúsítványhoz hozzárendelt adatbázis-felhasználót határoz meg.

Database_user_mapped_to_asymmetric_key
Aszimmetrikus kulcsra leképezett adatbázis-felhasználót ad meg.

Database_user_with_no_login
Olyan adatbázis-felhasználót ad meg, aki nem rendelkezik megfelelő kiszolgálószintű egyszerűséggel.

Remarks

Important

Bizonyos esetekben az engedélyek és ALTER az REFERENCE engedélyek kombinációja lehetővé teszi a jogosult számára az adatok megtekintését vagy jogosulatlan függvények végrehajtását. Például: Egy táblán engedéllyel és ALTER egy függvény engedélyével rendelkező REFERENCE felhasználó létrehozhat egy számított oszlopot egy függvényen keresztül, és végrehajthatja azt. Ebben az esetben a felhasználónak a számított oszlophoz is engedélyre van szüksége SELECT .

Az objektumokra vonatkozó információk különböző katalógusnézetekben láthatók. További információ: Objektumkatalógus nézetei (Transact-SQL).

Az objektumok olyan sémaszintű biztonságossá tétele, amelyet a séma tartalmaz, amely a szülője az engedélyhierarchiában. Az objektumokra adható legspecifikusabb és korlátozott engedélyeket az alábbi táblázatban találja, valamint azokat érintő általánosabb engedélyeket.

Objektum engedély Objektumengedélyek általi vélelmezés Sémaengedélyek alapján hallgatólagos
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

Az Azure Synapse Analytics nem támogatja a sémakötést, ami váratlan viselkedéshez vezethet a mögöttes objektumok módosításakor, és engedélyeket adnak egy nézethez. További információ: T-SQL-nézetek dedikált SQL-készlettel és kiszolgáló nélküli SQL-készlettel az Azure Synapse Analyticsben.

Permissions

Az engedélyezőnek (vagy az AS beállítással megadott tagnak) rendelkeznie kell magával GRANT OPTIONaz engedéllyel, vagy egy magasabb engedéllyel, amely azt jelenti, hogy az engedély meg van adva.

Ha az AS lehetőséget használja, az alábbi további követelmények érvényesek.

AS További engedély szükséges
Adatbázis-felhasználó IMPERSONATE engedély a felhasználóra, a db_securityadmin rögzített adatbázis-szerepkör tagsága, a db_owner rögzített adatbázis-szerepkör tagsága vagy a rögzített kiszolgálói szerepkör tagsága sysadmin .
Adatbázis-felhasználó windowsos bejelentkezésre van leképezve IMPERSONATE engedély a felhasználóra, a db_securityadmin rögzített adatbázis-szerepkör tagsága, a db_owner rögzített adatbázis-szerepkör tagsága vagy a rögzített kiszolgálói szerepkör tagsága sysadmin .
Adatbázis-felhasználó egy Windows-csoporthoz van hozzárendelve Tagság a Windows-csoportban, a db_securityadmin rögzített adatbázis-szerepkör tagsága, a db_owner rögzített adatbázis-szerepkör tagsága vagy a sysadmin rögzített kiszolgálói szerepkör tagsága.
Adatbázis-felhasználó tanúsítványra van leképezve A rögzített adatbázis-szerepkör tagsága db_securityadmin , a db_owner rögzített adatbázis-szerepkör tagsága vagy a rögzített kiszolgálói szerepkör tagsága sysadmin .
Adatbázis-felhasználó aszimmetrikus kulcsra van leképezve A rögzített adatbázis-szerepkör tagsága db_securityadmin , a db_owner rögzített adatbázis-szerepkör tagsága vagy a rögzített kiszolgálói szerepkör tagsága sysadmin .
Az adatbázis-felhasználó nincs hozzárendelve egyetlen kiszolgálónévhez sem IMPERSONATE engedély a felhasználóra, a db_securityadmin rögzített adatbázis-szerepkör tagsága, a db_owner rögzített adatbázis-szerepkör tagsága vagy a rögzített kiszolgálói szerepkör tagsága sysadmin .
Adatbázis-szerepkör ALTER engedély a szerepkörre, a db_securityadmin rögzített adatbázis-szerepkör tagságára, a db_owner rögzített adatbázis-szerepkör tagságára vagy a rögzített kiszolgálói szerepkör tagságára sysadmin .
Alkalmazás szerepkör ALTER engedély a szerepkörre, a db_securityadmin rögzített adatbázis-szerepkör tagságára, a db_owner rögzített adatbázis-szerepkör tagságára vagy a rögzített kiszolgálói szerepkör tagságára sysadmin .

Examples

A. SELECT engedély megadása táblán

Az alábbi példa engedélyt ad SELECT a felhasználónak RosaQdM az Person.Address adatbázis táblájábanAdventureWorks2025.

Ez az írott példa nem működik a Microsoft Fabricben, mert egy felhasználót használ egy SQL-hitelesítésű bejelentkezéshez, de ugyanez a példa egy Microsoft Entra ID Fabric-felhasználónál is működik, például RosaQdM@contoso.com.

GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;  
GO  

B. EXECUTE-engedély megadása tárolt eljáráshoz

Az alábbi példa engedélyt ad EXECUTE a tárolt eljáráshoz HumanResources.uspUpdateEmployeeHireInfo egy úgynevezett alkalmazásszerepkörnek Recruiting11.

USE AdventureWorks2022;   
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo  
    TO Recruiting11;  
GO   

C. HIVATKOZÁSI engedély megadása a GRANT BEÁLLÍTÁSsal rendelkező nézeten

Az alábbi példa engedélyt ad REFERENCES az oszlopra BusinessEntityID a HumanResources.vEmployee felhasználó WanidaGRANT OPTIONszámára.

Ez az írott példa nem működik a Microsoft Fabricben, mert egy felhasználót használ egy SQL-hitelesítésű bejelentkezéshez, de ugyanez a példa egy Microsoft Entra ID Fabric-felhasználónál is működik, például Wanida@contoso.com.

GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee   
    TO Wanida WITH GRANT OPTION;  
GO  

D. SELECT engedély megadása egy táblán az OBJECT kifejezés használata nélkül

Az alábbi példa engedélyt ad SELECT a felhasználónak RosaQdM az Person.Address adatbázis táblájábanAdventureWorks2025.

Ez az írott példa nem működik a Microsoft Fabricben, mert egy felhasználót használ egy SQL-hitelesítésű bejelentkezéshez, de ugyanez a példa egy Microsoft Entra ID Fabric-felhasználónál is működik, például RosaQdM@contoso.com.

GRANT SELECT ON Person.Address TO RosaQdM;  
GO  

E. SELECT engedély megadása egy táblán tartományi fióknak

Az alábbi példa engedélyt ad SELECT a felhasználónak AdventureWorks2022\RosaQdM az Person.Address adatbázis táblájábanAdventureWorks2025.

Ez az írott példa nem működik a Microsoft Fabricben, mert tartományi fiókot használ, de ugyanez a példa például egy Microsoft Entra ID Fabric-felhasználónál RosaQdM@contoso.comis működik.

GRANT SELECT ON Person.Address TO [AdventureWorks2022\RosaQdM];  
GO  

F. VÉGREHAJTÁSI engedély megadása egy eljáráshoz egy szerepkörhöz

Az alábbi példa létrehoz egy szerepkört, majd engedélyt ad EXECUTE a szerepkörnek az adatbázisban található uspGetBillOfMaterials eljáráshozAdventureWorks2025.

CREATE ROLE newrole ;  
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;  
GO  

G. UNMASK-engedély megadása oszlopon

Az alábbi példa a UNMASK egy részét adja meg a felhasználónak emaila tábla Data.Membership oszlopának OutreachCoordinator engedélyével.

A Microsoft Fabric jelenleg nem támogatja a dinamikus adatmaszkolást.

GRANT UNMASK ON OBJECT::Data.Membership (email) to OutreachCoordinator;
GO