SQL Server GRANT

Sql Server Grant



Šajā rakstā jūs sapratīsit, kā izmantot GRANT priekšrakstu programmā SQL Server, lai nodrošinātājam piešķirtu atļaujas principālam.

SQL Server Securable and Principal

Securable attiecas uz resursiem, ko SQL Server Database Engine autorizācijas sistēma kontrolē piekļuvi. Piemērs varētu būt datu bāzes tabula.

Principāls attiecas uz jebkuru entītiju, kurai nepieciešama piekļuve jebkuram SQL Server resursam. Piemēram, lietotājs, kurš pieprasa atļaujas tabulā, ir galvenais.







SQL Server Grant Statement

Tālāk ir parādīta komandas GRANT sintakse SQL Server:



GRANT atļaujas
IESLĒGTS nostiprināms uz galveno;

Jums ir jānorāda atļauja, kuru vēlaties piešķirt principālam kā komatu atdalītu sarakstu.



Atslēgvārds IESLĒGTS ļauj norādīt drošības līdzekli, kuram tiek piemērotas atļaujas. Visbeidzot, TO atslēgvārds ļauj iestatīt mērķa principu.





Piemēram, izveidojot lietotāju, izmantojot priekšrakstu CREATE USER, šim lietotājam netiek noteiktas atļaujas. Tāpēc ir svarīgi izmantot GRANT paziņojumu, lai iestatītu atļaujas šim lietotājam.

Ņemsim piemēru.



Izveidojiet pieteikšanās piemēru

Sāksim ar pieteikšanās parauga izveidi ilustrācijas nolūkos. Vaicājums ir šāds:

izveidot pieteikšanās linuxhint
with password='password';

Iepriekš esošajai komandai ir jāizveido lietotājs ar lietotājvārdu linuxhint un norādīto paroli.

Izveidot paraugu datu bāzi

Mēs varam izveidot datu bāzi, kurā lietotājs dzīvos, kad būsim definējuši pieteikšanos. Vaicājumi ir šādi:

nomest datu bāzi, ja pastāv atrisinātājs;

izveidot datu bāzes atrisinātāju;

izmantot atrisinātāju;

nomest tabulu, ja ir ieraksti;

izveidot tabulas ierakstus (
id int nav null identitāte(1,
1) primārā atslēga,
servera_nosaukums varchar(50),
servera_adrese varchar(255) nav null,
compression_method varchar(100) noklusējuma 'none',
size_on_sk float nav nulles,
size_compressed float,
total_records int nevis null,
init_date datums
);
ievietot
iekšā
IERAKSTI(servera_nosaukums,
servera_adrese,
kompresijas_metode,
izmērs_diskā,
size_compressed,
total_records,
sākuma_datums)
vērtības
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Rēdis','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');

Izveidojiet lietotāju, lai pieteiktos

Kad esam izveidojuši datu bāzi un tabulu, mēs varam izveidot lietotāju linuxhint pieteikšanās datiem kā:

izmantojiet atrisinātāju
izveidot lietotāju linuxhint
lai pieteiktos linuxhint;

Piesakieties kā jaunais lietotājs

Pēc tam ļaujiet mums pieteikties kā jaunizveidotajam lietotājam. Komanda ir tāda, kā parādīts:

setuser 'linuxhint';

Kad esam pieteikušies, mēs varam mēģināt skatīt tabulas, izpildot atlases komandu:

izvēlieties * no ierakstiem;

Palaižot iepriekš minēto vaicājumu, jāatgriež kļūda:

229. ziņojums, 14. līmenis, 5. stāvoklis, 379. rindiņa
SELECT atļauja tika liegta objektam 'entries', datu bāzes 'risinātājam', shēmai 'dbo'.

Tas ir tāpēc, ka linuxhint lietotājam datu bāzē nav nekādu atļauju, ieskaitot SELECT atļaujas.

Piešķiriet Lietotājam atļauju

Mums ir jāpiešķir SELECT atļaujas, lai lietotājs varētu skatīt tabulās saglabāto informāciju.

Lai to izdarītu, jums ir jāpiesakās, izmantojot SQL Server administratīvo kontu.

Pēc tam palaidiet vaicājumu šādi:

piešķirt atlasi ierakstiem uz linuxhint;

Kad tas ir izpildīts, piesakieties kā linuxhint lietotājs un izmantojiet priekšrakstu SELECT.

izvēlieties * no ierakstiem;

Šajā gadījumā komanda atgriež tabulu, jo lietotājam ir SELECT atļaujas

Varat arī piešķirt lietotājam citas atļaujas, piemēram, ievietot un dzēst kā:

piešķirt ievietot, dzēst ierakstus linuxhintam;

šajā gadījumā linuxhint lietotājam ir jābūt SELECT, INSERT un DELETE atļaujām ierakstu tabulā.

Secinājums

Šajā ziņojumā mēs izpētījām komandas GRANT izmantošanu SQL Server. Komanda ļauj piešķirt atļaujas noteiktam galvenajam.