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 linuxhintwith 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ótlinuxhint 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. sorA 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.