SQL Server GRANT

Sql Server Grant



Šiame straipsnyje jūs suprasite, kaip naudoti GRANT teiginį SQL Server, kad pagrindiniam asmeniui būtų suteiktos saugos teisės.

SQL serverio saugus ir pagrindinis

Saugomas reiškia išteklius, kuriuos SQL serverio duomenų bazės variklio autorizacijos sistema kontroliuoja prieigą. Pavyzdys būtų duomenų bazės lentelė.

Principas reiškia bet kurį objektą, kuriam reikalinga prieiga prie bet kurio SQL serverio išteklių. Pavyzdžiui, vartotojas, prašantis leidimo lentelėje, yra pagrindinis.







SQL serverio dotacijos pareiškimas

Toliau parodyta komandos GRANT sintaksė SQL Server:



SUTEIKTI leidimus
ĮJUNGTAS tvirtinamas prie pagrindinio;

Turite nurodyti leidimą, kurį norite priskirti pagrindiniam asmeniui, kaip kableliais atskirtą sąrašą.



Raktinis žodis ĮJUNGTA leidžia nurodyti apsaugotą elementą, kuriam taikomi leidimai. Galiausiai, raktinis žodis TO leidžia nustatyti pagrindinį tikslą.





Pavyzdžiui, kuriant vartotoją naudojant CREATE USER sakinį, to vartotojo teisės neapibrėžiamos. Todėl norint nustatyti šio vartotojo teises, būtina naudoti GRANT teiginį.

Paimkime pavyzdį.



Sukurkite prisijungimo pavyzdį

Pradėkime nuo prisijungimo pavyzdžio iliustravimo tikslais. Užklausa pateikiama žemiau:

sukurti prisijungimo linuxhint
with password='slaptažodis';

Aukščiau pateikta komanda turėtų sukurti vartotoją su vartotojo vardu linuxhint ir nurodytu slaptažodžiu.

Sukurkite pavyzdinę duomenų bazę

Galime sukurti duomenų bazę, kurioje gyvens vartotojas, kai tik nustatysime prisijungimą. Užklausos yra tokios, kaip parodyta:

išmeskite duomenų bazę, jei yra sprendiklis;

sukurti duomenų bazės sprendiklį;

naudoti tirpiklį;

išmeskite lentelę, jei yra įrašų;

sukurti lentelės įrašus (
id int not null identitetas(1,
1) pirminis raktas,
serverio_pavadinimas varchar(50),
serverio_adresas varchar(255) not null,
compression_method varchar(100) numatytasis 'nėra',
size_on_disk float not null,
size_compressed float,
total_records int ne nulis,
pradžios_datos data
);
Įdėti
į
ĮRAŠAI(serverio_pavadinimas,
serverio adresas,
suspaudimo_metodas,
dydis_disk,
size_compressed,
total_records,
pradžios_data)
vertybes
('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“);

Sukurkite prisijungimo vartotoją

Sukūrę duomenų bazę ir lentelę, galime sukurti „Linuxhint“ prisijungimo vartotoją kaip:

naudokite tirpiklį
sukurti vartotoją linuxhint
prisijungimui linuxhint;

Prisijunkite kaip naujas vartotojas

Tada prisijunkite kaip naujai sukurtas vartotojas. Komanda yra tokia, kaip parodyta:

setuser 'linuxhint';

Prisijungę galime pabandyti peržiūrėti lenteles vykdydami komandą Select:

pasirinkite * iš įrašų;

Vykdant aukščiau pateiktą užklausą turėtų būti pateikta klaida:

229 žinutė, 14 lygis, 5 būsena, 379 eilutė
SELECT leidimas buvo atmestas objekte „įrašai“, duomenų bazės „sprendėjas“, schema „dbo“.

Taip yra todėl, kad „Linuxhint“ vartotojas neturi jokių duomenų bazės teisių, įskaitant SELECT leidimus.

Suteikite vartotojui leidimą

Turime suteikti SELECT leidimus, kad vartotojas galėtų peržiūrėti lentelėse saugomą informaciją.

Norėdami tai padaryti, turite prisijungti naudodami SQL serverio administracinę paskyrą.

Tada paleiskite užklausą kaip:

leisti pasirinkti įrašus į linuxhintą;

Vykdę prisijunkite kaip „Linuxhint“ vartotojas ir naudokite teiginį SELECT.

pasirinkite * iš įrašų;

Tokiu atveju komanda grąžina lentelę, nes vartotojas turi SELECT teises

Taip pat galite priskirti vartotojui kitus leidimus, pvz., įterpti ir ištrinti kaip:

suteikti įterpti, ištrinti įrašus į linuxhintą;

Šiuo atveju „Linuxhint“ vartotojas įrašų lentelėje turėtų turėti leidimus SELECT, INSERT ir DELETE.

Išvada

Šiame įraše mes ištyrėme komandos GRANT naudojimą SQL serveryje. Komanda leidžia priskirti teises nurodytam vadovui.