SQL Server TILDELING

Sql Server Tildeling



I denne artikel vil du forstå, hvordan du bruger GRANT-sætningen i SQL Server til at give tilladelser til en sikker til en principal.

SQL Server Securable og Principal

En sikker henviser til de ressourcer, som SQL Server Database Engine-autorisationssystemet kontrollerer adgangen. Et eksempel kunne være en databasetabel.

En principal refererer til enhver enhed, der kræver adgang til enhver SQL Server-ressource. For eksempel er en bruger, der anmoder om tilladelser på en tabel, en principal.







SQL Server Grant Statement

Det følgende viser syntaksen for GRANT-kommandoen i SQL Server:



GIV tilladelser
ON sikres TIL hoved;

Du skal angive den tilladelse, du ønsker at tildele rektor, som en kommasepareret liste.



Nøgleordet ON giver dig mulighed for at angive den sikrede, som tilladelserne anvendes på. Endelig giver TO nøgleordet dig i stand til at angive målprincippet.





Oprettelse af en bruger ved hjælp af CREATE USER-sætningen definerer f.eks. ikke tilladelserne for denne bruger. Det er derfor vigtigt at bruge GRANT-sætningen til at indstille tilladelserne for den pågældende bruger.

Lad os tage et eksempel.



Opret eksempel login

Lad os starte med at oprette et eksempel på login til illustrationsformål. Forespørgslen er som angivet nedenfor:

oprette login linuxhint
med password='adgangskode';

Kommandoen ovenfor skal oprette en bruger med brugernavnet linuxhint og den angivne adgangskode.

Opret prøvedatabase

Vi kan oprette en database, hvor brugeren vil opholde sig, når vi har defineret et login. Forespørgslerne er som vist:

drop database, hvis der findes resolver;

oprette database resolver;

brug resolver;

drop tabel hvis der findes poster;

oprette tabelposter(
id int ikke null identitet(1,
1) primær nøgle,
servernavn varchar(50),
server_adresse varchar(255) ikke null,
compression_method varchar(100) standard 'ingen',
size_on_disk float ikke null,
size_compressed float,
total_records int ikke null,
init_date dato
);
indsætte
ind i
ENTRIES(server_navn,
serveradresse,
kompressionsmetode,
størrelse_på_disk,
størrelse_komprimeret,
total_records,
init_date)
værdier
('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');

Opret en bruger til login

Når vi har oprettet databasen og tabellen, kan vi oprette en bruger til linuxhint login som:

bruge resolver
oprette bruger linuxhint
til login linuxhint;

Log ind som ny bruger

Lad os derefter logge ind som den nyoprettede bruger. Kommandoen er som vist:

setuser 'linuxhint';

Når vi er logget ind, kan vi forsøge at se tabellerne ved at køre select-kommandoen:

vælg * fra poster;

Kørsel af forespørgslen ovenfor skulle returnere en fejl:

Besked 229, niveau 14, tilstand 5, linje 379
SELECT-tilladelsen blev nægtet på objektet 'entries', database 'resolver', skema 'dbo'.

Dette skyldes, at linuxhint-brugeren ikke har nogen tilladelser på databasen, inklusive SELECT-tilladelserne.

Giv tilladelse til brugeren

Vi er nødt til at give SELECT-tilladelserne for at give brugeren mulighed for at se de oplysninger, der er gemt i tabellerne.

Til det skal du logge ind med SQL Server-administrationskontoen.

Kør derefter forespørgslen som:

giv valg på poster til linuxhint;

Når den er udført, skal du logge ind som linuxhint-brugeren og bruge SELECT-sætningen.

vælg * fra poster;

I dette tilfælde returnerer kommandoen tabellen, da brugeren har SELECT-tilladelser

Du kan også tildele andre tilladelser til brugeren, såsom indsæt og slet som:

giv indsæt, slet på indgange til linuxhint;

i dette tilfælde skal linuxhint-brugeren have rettighederne SELECT, INSERT og DELETE i indtastningstabellen.

Konklusion

I dette indlæg undersøgte vi brugen af ​​GRANT-kommandoen i SQL Server. Kommandoen giver dig mulighed for at tildele tilladelser til en given rektor.