esemény
márc. 31. 23 - ápr. 2. 23
A legnagyobb SQL, Fabric és Power BI tanulási esemény. Március 31. – Április 2. A FABINSIDER kóddal 400 dollárt takaríthat meg.
Regisztráljon még maEzt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Analytics platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabric
Warehouse-ban a Microsoft Fabric
SQL-adatbázisban a Microsoft Fabric
Engedélyeket ad egy biztonságos tagnak. Az általános fogalom a GRANT <some permission> ON <some object> TO <some user, login, or group>
. Az engedélyek általános ismertetését a engedélyek (adatbázismotor)című témakörben talál.
Transact-SQL szintaxis konvenciói
Az SQL Server, az Azure SQL Database és a Fabric SQL Database szintaxisa.
-- Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
| permission [ ( column [ , ...n ] ) ] [ , ...n ]
[ ON [ class :: ] securable ] TO principal [ , ...n ]
[ WITH GRANT OPTION ] [ AS principal ]
Szintaxis az Azure Synapse Analyticshez, a párhuzamos adattárházhoz és a Microsoft Fabric-raktárhoz.
GRANT
<permission> [ , ...n ]
[ ON [ <class_type> :: ] securable ]
TO principal [ , ...n ]
[ WITH GRANT OPTION ]
[;]
<permission> ::=
{ see the tables below }
<class_type> ::=
{
LOGIN
| DATABASE
| OBJECT
| ROLE
| SCHEMA
| USER
}
Ez a beállítás elavult, és csak a visszamenőleges kompatibilitás érdekében van fenntartva. Nem ad meg minden lehetséges engedélyt. A ALL
megadása egyenértékű a következő engedélyek biztosításával.
Securable | Engedélyek |
---|---|
Adatbázis |
BACKUP DATABASE , BACKUP LOG , CREATE DATABASE , CREATE DEFAULT , CREATE FUNCTION , CREATE PROCEDURE , CREATE RULE , CREATE TABLE és CREATE VIEW |
Skaláris függvény |
EXECUTE és REFERENCES |
Táblaértékű függvény |
DELETE , INSERT , REFERENCES , SELECT és UPDATE |
Tárolt eljárás | EXECUTE |
Asztal |
DELETE , INSERT , REFERENCES , SELECT és UPDATE |
Nézet |
DELETE , INSERT , REFERENCES , SELECT és UPDATE |
Az ISO-megfelelőség része. Nem változtatja meg a ALL
viselkedését.
Az engedély neve. A biztonságossá tételhez szükséges engedélyek érvényes leképezéseit az alábbi szakaszok ismertetik.
Egy tábla azon oszlopának nevét adja meg, amelyen engedélyeket adnak meg. A zárójelek (
és )
szükségesek.
Annak a biztonságosnak az osztályát adja meg, amelyen az engedély meg van adva. A hatókör-minősítő ::
szükséges.
Azt a biztonságossá tételt adja meg, amelyen az engedély meg van adva.
Egy tag neve. Azoknak a tagoknak, amelyeknek a biztonságossá teheti az engedélyeket, a biztonságosságtól függően eltérőek lehetnek. Érvényes kombinációkat a következő szakaszokban talál.
Azt jelzi, hogy a kedvezményezettnek lehetősége lesz arra is, hogy a megadott engedélyt más tagoknak is megadja.
Használja a AS <principal>
záradékot annak jelzésére, hogy az engedély jogosultjaként nyilvántartott tagnak nem az utasítást végrehajtó személynek kell lennie. Tegyük fel például, hogy a felhasználói Mary
principal_id
12
rendelkezik, és a felhasználói Raul
egyszerű 15
. Mary végrehajtja GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul;
Most a sys.database_permissions
tábla azt jelzi, hogy a grantor_principal_id
15
(Raul
) volt, annak ellenére, hogy az utasítást ténylegesen a felhasználói 12
(Mary
) hajtotta végre.
A AS
záradék használata általában csak akkor ajánlott, ha explicit módon meg kell határoznia az engedélyláncot. További információ: Az engedély-ellenőrzési algoritmusösszegzése.
A AS
használata ebben az utasításban nem jelenti azt, hogy megszemélyesíthet egy másik felhasználót.
A GRANT
utasítás teljes szintaxisa összetett. Az előző szintaxisdiagram egyszerűbb volt, hogy felhívja a figyelmet a szerkezetére. Az engedélyek adott biztonságossá tételének teljes szintaxisát a cikk későbbi részében felsorolt cikkek ismertetik.
A REVOKE
utasítással eltávolíthatók a megadott engedélyek, és a DENY
utasítással megakadályozhatja, hogy egy tag egy adott engedélyt szerezzen egy GRANT
.
Az engedély megadása eltávolítja az engedély DENY
vagy REVOKE
a megadott biztonságos eszközön. Ha ugyanaz az engedély egy magasabb hatókörben van megtagadva, amely tartalmazza a biztonságossá tételt, a DENY
elsőbbséget élvez. A megadott engedély magasabb hatókörben való visszavonása azonban nem élvez elsőbbséget.
Az adatbázisszintű engedélyek a megadott adatbázis hatókörén belül vannak megadva. Ha egy felhasználónak engedélyekre van szüksége egy másik adatbázisban lévő objektumokhoz, hozza létre a felhasználói fiókot a másik adatbázisban, vagy adjon hozzáférést a felhasználói fióknak a másik adatbázishoz és az aktuális adatbázishoz.
Figyelemfelhívás
A táblaszintű DENY
nem élvez elsőbbséget az oszlopszintű GRANT
. Az engedélyhierarchiában ez az inkonzisztencia megmarad a visszamenőleges kompatibilitás érdekében. Egy későbbi kiadásban el lesz távolítva.
A sp_helprotect
rendszer által tárolt eljárás egy adatbázisszintű biztonságos engedélyről számol be.
A Microsoft Fabricben a CREATE USER
jelenleg nem hajthatók végre explicit módon. A GRANT
vagy DENY
végrehajtásakor a rendszer automatikusan létrehozza a felhasználót.
A GRANT ... WITH GRANT OPTION
meghatározza, hogy az engedélyt kapó biztonsági tagnak lehetősége van a megadott engedély megadására más biztonsági fiókok számára. Ha az engedélyt kapó tag szerepkör vagy Windows-csoport, a AS
záradékot akkor kell használni, ha az objektumengedélyt tovább kell adni azoknak a felhasználóknak, akik nem tagjai a csoportnak vagy a szerepkörnek. Mivel a csoport vagy szerepkör helyett csak egy felhasználó hajthat végre GRANT
utasítást, a csoport vagy szerepkör egy adott tagjának a AS
záradék használatával kell explicit módon meghívnia a szerepkört vagy csoporttagságokat az engedély megadásakor. Az alábbi példa bemutatja, hogyan használja a WITH GRANT OPTION
egy szerepkör vagy Windows-csoport számára.
-- Execute the following as a database owner
GRANT EXECUTE ON TestProc TO TesterRole WITH GRANT OPTION;
EXEC sp_addrolemember TesterRole, User1;
-- Execute the following as User1
-- The following fails because User1 does not have the permission as the User1
GRANT EXECUTE ON TestProc TO User2;
-- The following succeeds because User1 invokes the TesterRole membership
GRANT EXECUTE ON TestProc TO User2 AS TesterRole;
A pdf formátumú adatbázismotor-engedélyeket ábrázoló plakát méretű diagramért lásd: https://aka.ms/sql-permissions-poster.
Az engedélyezőnek (vagy a AS
beállítással megadott tagnak) magának az engedélynek GRANT OPTION
kell rendelkeznie, vagy egy magasabb engedélynek, amely az engedély megadását jelenti. Ha a AS
lehetőséget használja, további követelmények érvényesek. További részletekért tekintse meg a biztonságossá tételről szóló cikket.
Az objektumtulajdonosok engedélyeket adhatnak a saját objektumaikhoz. A biztonságossá CONTROL
engedéllyel rendelkező tagok engedélyt adhatnak a biztonságossá tételhez.
A CONTROL SERVER
engedély jogosultai, például a sysadmin rögzített kiszolgálói szerepkör tagjai bármilyen, a kiszolgálón biztonságossá tehetnek engedélyt. Az adatbázisra vonatkozó CONTROL
engedély megadása, például a db_owner rögzített adatbázis-szerepkör tagjai bármilyen engedélyt adhatnak az adatbázis bármely biztonságossá tételéhez. A séma CONTROL
engedélyei bármilyen engedélyt adhatnak a sémán belüli bármely objektumra.
Az alábbi táblázat a biztonságosságra vonatkozó szintaxist leíró cikkeket és a biztonságossá tételt ismertető cikkeket sorolja fel.
esemény
márc. 31. 23 - ápr. 2. 23
A legnagyobb SQL, Fabric és Power BI tanulási esemény. Március 31. – Április 2. A FABINSIDER kóddal 400 dollárt takaríthat meg.
Regisztráljon még ma