SQL Server GANT

Sql Server Gant



I denne artikkelen vil du forstå hvordan du bruker GRANT-setningen i SQL Server for å gi tillatelser på en sikret til en oppdragsgiver.

SQL Server Sikrebar og Principal

En sikrebar refererer til ressursene SQL Server Database Engine-autorisasjonssystemet kontrollerer tilgangen. Et eksempel kan være en databasetabell.

En rektor refererer til enhver enhet som krever tilgang til en hvilken som helst SQL Server-ressurs. For eksempel er en bruker som ber om tillatelser på et bord en oppdragsgiver.







SQL Server Grant Statement

Følgende viser syntaksen til GRANT-kommandoen i SQL Server:



GIR tillatelser
PÅ sikres TIL hovednettet;

Du må spesifisere tillatelsen du ønsker å tildele rektor som en kommadelt liste.



Nøkkelordet ON lar deg spesifisere den sikrede som tillatelsene brukes på. Til slutt lar TO-nøkkelordet deg angi målprinsippet.





Hvis du for eksempel oppretter en bruker ved å bruke CREATE USER-setningen, definerer ikke tillatelsene for den brukeren. Det er derfor viktig å bruke GRANT-setningen for å angi tillatelsene for den brukeren.

La oss ta et eksempel.



Opprett eksempelpålogging

La oss starte med å lage et eksempel på pålogging for illustrasjonsformål. Spørsmålet er som angitt nedenfor:

opprette login linuxhint
med passord='passord';

Kommandoen ovenfor skal opprette en bruker med brukernavnet linuxhint og det angitte passordet.

Opprett prøvedatabase

Vi kan opprette en database hvor brukeren skal bo når vi har definert en pålogging. Spørsmålene er som vist:

slipp database hvis det finnes resolver;

lage database-løser;

bruk resolver;

slipp tabell hvis det finnes oppføringer;

opprett tabelloppføringer(
id int ikke null identitet(1,
1) primærnøkkel,
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
);
sett inn
inn i
ENTRIES(tjenernavn,
server adresse,
komprimeringsmetode,
størrelse_på_disk,
size_compressed,
total_records,
init_date)
verdier
('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');

Opprett en bruker for påloggingen

Når vi har opprettet databasen og tabellen, kan vi opprette en bruker for linuxhint-påloggingen som:

bruk resolver
opprette bruker linuxhint
for pålogging linuxhint;

Logg inn som ny bruker

La oss deretter logge på som den nyopprettede brukeren. Kommandoen er som vist:

setuser 'linuxhint';

Når vi er logget inn, kan vi prøve å se tabellene ved å kjøre select-kommandoen:

velg * fra oppføringer;

Å kjøre spørringen ovenfor bør returnere en feil:

Melding 229, nivå 14, delstat 5, linje 379
SELECT-tillatelsen ble nektet for objektet 'entries', database 'resolver', skjemaet 'dbo'.

Dette er fordi linuxhint-brukeren ikke har noen tillatelser på databasen, inkludert SELECT-tillatelsene.

Gi tillatelse til brukeren

Vi må gi SELECT-tillatelsene for å la brukeren se informasjonen som er lagret i tabellene.

For det må du logge på med SQL Server-administratorkontoen.

Deretter kjører du spørringen som:

gi velg på oppføringer til linuxhint;

Når den er utført, logg på som linuxhint-bruker og bruk SELECT-setningen.

velg * fra oppføringer;

I dette tilfellet returnerer kommandoen tabellen ettersom brukeren har SELECT-tillatelser

Du kan også tildele andre tillatelser til brukeren, for eksempel å sette inn og slette som:

gi innsett, slett på oppføringer til linuxhint;

i dette tilfellet bør linuxhint-brukeren ha rettighetene SELECT, INSERT og DELETE i oppføringstabellen.

Konklusjon

I dette innlegget utforsket vi bruken av GRANT-kommandoen i SQL Server. Kommandoen lar deg tildele tillatelser til en gitt rektor.