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 linuxhintwith 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.