SQL Server GRANT

Sql Server Grant



În acest articol, veți înțelege cum să utilizați instrucțiunea GRANT în SQL Server pentru a acorda permisiuni pentru un element securizat unui principal.

SQL Server securizat și principal

Un element securizat se referă la resursele pe care sistemul de autorizare a motorului de bază de date SQL Server controlează accesul. Un exemplu ar fi un tabel de bază de date.

Un principal se referă la orice entitate care necesită acces la orice resursă SQL Server. De exemplu, un utilizator care solicită permisiuni pentru un tabel este principal.







Declarație de acordare a SQL Server

Următoarele arată sintaxa comenzii GRANT în SQL Server:



Acordați permisiuni
ON securabil la principal;

Trebuie să specificați permisiunea pe care doriți să o atribuiți principalului ca o listă separată prin virgulă.



Cuvântul cheie ON vă permite să specificați elementul securizat pentru care sunt aplicate permisiunile. În cele din urmă, cuvântul cheie TO vă permite să setați principalul țintă.





De exemplu, crearea unui utilizator folosind instrucțiunea CREATE USER nu definește permisiunile pentru acel utilizator. Prin urmare, este esențial să folosiți instrucțiunea GRANT pentru a seta permisiunile pentru acel utilizator.

Să luăm un exemplu.



Creați un exemplu de conectare

Să începem prin a crea un exemplu de conectare în scopuri ilustrative. Interogarea este după cum este prezentat mai jos:

creați autentificare linuxhint
cu parola='parola';

Comanda de mai sus ar trebui să creeze un utilizator cu numele de utilizator linuxhint și parola specificată.

Creați exemplu de bază de date

Putem crea o bază de date în care utilizatorul va locui după ce ne-am definit un login. Interogările sunt așa cum se arată:

abandonați baza de date dacă există soluție;

crearea soluției bazei de date;

utilizați rezolutor;

drop tabel dacă există intrări;

creați intrări în tabel(
id int nu identitate nulă (1,
1) cheie primară,
nume_server varchar(50),
server_address varchar(255) nu este null,
compression_method varchar(100) implicit „none”,
size_on_disk float nu este nul,
size_compressed float,
total_records int nu null,
init_date data
);
introduce
în
ENTRIES(nume_server,
adresa serverului,
compresie_method,
spațiu pe disk,
dimensiune_comprimată,
total_records,
init_date)
valorile
('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');

Creați un utilizator pentru autentificare

Odată ce am creat baza de date și tabelul, putem crea un utilizator pentru autentificarea linuxhint ca:

utilizați rezolutorul
creați utilizatorul linuxhint
pentru autentificare linuxhint;

Conectați-vă ca utilizator nou

Apoi, permiteți-ne să ne conectăm ca utilizator nou creat. Comanda este așa cum se arată:

setuser 'linuxhint';

Odată autentificat, putem încerca să vedem tabelele rulând comanda select:

selectați * din intrări;

Rularea interogării de mai sus ar trebui să returneze o eroare:

Mesajul 229, Nivelul 14, Statul 5, Linia 379
Permisiunea SELECT a fost refuzată pentru obiectul „intrari”, baza de date „resolver”, schema „dbo”.

Acest lucru se datorează faptului că utilizatorul linuxhint nu are permisiuni pentru baza de date, inclusiv permisiunile SELECT.

Acordați permisiunea utilizatorului

Trebuie să acordăm permisiunile SELECT pentru a permite utilizatorului să vizualizeze informațiile stocate în tabele.

Pentru aceasta, trebuie să vă autentificați cu contul administrativ SQL Server.

Apoi, rulați interogarea ca:

acordați selectarea intrărilor la linuxhint;

Odată executat, conectați-vă ca utilizator linuxhint și utilizați instrucțiunea SELECT.

selectați * din intrări;

În acest caz, comanda returnează tabelul deoarece utilizatorul are permisiuni SELECT

De asemenea, puteți atribui alte permisiuni utilizatorului, cum ar fi inserarea și ștergerea ca:

grant insert, delete on entries to linuxhint;

în acest caz, utilizatorul linuxhint ar trebui să aibă permisiunile SELECT, INSERT și DELETE pe tabelul de intrări.

Concluzie

În această postare, am explorat utilizarea comenzii GRANT în SQL Server. Comanda vă permite să atribuiți permisiuni unui anumit principal.