SQL Server GRANT

Sql Server Grant



Ebből a cikkből megtudhatja, hogyan használhatja a GRANT utasítást az SQL Serverben, hogy engedélyeket adjon meg egy biztonságos meghatalmazottnak.

SQL Server Securable and Principal

A biztonságos azokra az erőforrásokra utal, amelyeket az SQL Server Database Engine jogosultsági rendszer szabályozza a hozzáférést. Példa erre egy adatbázistábla.

A megbízó minden olyan entitásra utal, amely bármely SQL Server-erőforráshoz hozzáférést igényel. Például egy felhasználó, aki engedélyeket kér egy táblához, egy megbízó.







SQL Server támogatási nyilatkozat

Az alábbiakban látható a GRANT parancs szintaxisa az SQL Serverben:



GRANT engedélyeket
BE rögzíthető a főre;

Meg kell adnia a megbízóhoz rendelni kívánt engedélyt vesszővel elválasztott listaként.



Az ON kulcsszó lehetővé teszi, hogy megadja azt a biztonságos eszközt, amelyre az engedélyek vonatkoznak. Végül, a TO kulcsszó lehetővé teszi a célfő beállítását.





Például egy felhasználó létrehozása a CREATE USER utasítással nem határozza meg a felhasználó jogosultságait. Ezért elengedhetetlen a GRANT utasítás használata az adott felhasználó engedélyeinek beállításához.

Vegyünk egy példát.



Példabejelentkezés létrehozása

Kezdjük egy bejelentkezési minta létrehozásával szemléltetés céljából. A lekérdezés az alábbiak szerint történik:

hozzon létre bejelentkezési linuxhint
with password='password';

A fenti parancsnak létre kell hoznia egy felhasználót a linuxhint felhasználónévvel és a megadott jelszóval.

Mintaadatbázis létrehozása

Létrehozhatunk egy adatbázist, ahol a felhasználó lakni fog, miután megadtuk a bejelentkezést. A lekérdezések a képen láthatóak:

drop adatbázis, ha létezik feloldó;

adatbázis-feloldó létrehozása;

Rezolver használata;

dobja a táblázatot, ha vannak bejegyzések;

táblázat bejegyzések létrehozása (
id int nem null identitás(1,
1) elsődleges kulcs,
szerver_neve varchar(50),
szerver_címe varchar(255) nem null,
compression_method varchar(100) alapértelmezett 'none',
size_on_disk float nem null,
size_compressed float,
total_records int nem null,
kezdeti_dátum dátuma
);
betét
-ba
ENTRIES(szerver_neve,
szerver címe,
tömörítési_módszer,
size_on_disk,
size_compressed,
total_records,
kezdeti_dátum)
értékeket
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

Hozzon létre egy felhasználót a bejelentkezéshez

Miután létrehoztuk az adatbázist és a táblát, létrehozhatunk egy felhasználót a linuxhint bejelentkezéshez:

használj feloldót
linuxhint felhasználó létrehozása
bejelentkezéshez linuxhint;

Jelentkezzen be új felhasználóként

Ezután jelentkezzünk be újonnan létrehozott felhasználóként. A parancs a képen látható:

setuser 'linuxhint';

Miután bejelentkeztünk, a select parancs futtatásával megkísérelhetjük megtekinteni a táblázatokat:

válassza ki a * bejegyzéseket;

A fenti lekérdezés futtatása hibát jelez:

229. üzenet, 14. szint, 5. állapot, 379. sor
A SELECT engedély megtagadva az „entries”, az adatbázis „feloldó” és a „dbo” sémánál.

Ennek az az oka, hogy a linuxhint felhasználónak nincsenek engedélyei az adatbázishoz, beleértve a SELECT engedélyeket.

Engedély megadása a Felhasználónak

Meg kell adnunk a SELECT engedélyeket, hogy a felhasználó megtekinthesse a táblákban tárolt információkat.

Ehhez be kell jelentkeznie az SQL Server rendszergazdai fiókjával.

Ezután futtassa a lekérdezést a következőképpen:

kijelölés engedélyezése a linuxhint bejegyzéseknél;

A végrehajtás után jelentkezzen be linuxhint felhasználóként, és használja a SELECT utasítást.

válassza ki a * bejegyzéseket;

Ebben az esetben a parancs visszaadja a táblát, mivel a felhasználó SELECT jogosultsággal rendelkezik

Más engedélyeket is hozzárendelhet a felhasználóhoz, például beszúrást és törlést, mint:

engedélyezi a beszúrást, törlést a linuxhint bejegyzéseknél;

ebben az esetben a linuxhint felhasználónak rendelkeznie kell a SELECT, INSERT és DELETE jogosultságokkal a bejegyzési táblában.

Következtetés

Ebben a bejegyzésben megvizsgáltuk a GRANT parancs használatát az SQL Serverben. A parancs lehetővé teszi, hogy engedélyeket rendeljen egy adott megbízóhoz.