SQL Server GRANT

Sql Server Grant



V tomto článku pochopíte, ako použiť príkaz GRANT na serveri SQL Server na udelenie povolení na zabezpečiteľný objekt principálovi.

Zabezpečený a hlavný SQL Server

Zabezpečený sa vzťahuje na zdroje, ku ktorým autorizačný systém databázového stroja SQL Server riadi prístup. Príkladom môže byť tabuľka databázy.

Principál odkazuje na akúkoľvek entitu, ktorá vyžaduje prístup k akémukoľvek prostriedku SQL Server. Napríklad užívateľ požadujúci povolenia pre tabuľku je principál.







SQL Server Grant Statement

Nasledujúci text zobrazuje syntax príkazu GRANT v SQL Server:



GRANT povolenia
ON zabezpečený K hlavnej;

Musíte zadať povolenie, ktoré chcete prideliť principálovi, ako zoznam oddelený čiarkami.



Kľúčové slovo ON vám umožňuje určiť zabezpečený prvok, na ktorý sa vzťahujú povolenia. Nakoniec, kľúčové slovo TO vám umožňuje nastaviť cieľový principál.





Napríklad vytvorenie užívateľa pomocou príkazu CREATE USER nedefinuje oprávnenia pre tohto užívateľa. Na nastavenie oprávnení pre daného používateľa je preto nevyhnutné použiť príkaz GRANT.

Vezmime si príklad.



Vytvoriť príklad prihlásenia

Začnime vytvorením vzorového prihlásenia pre ilustráciu. Dotaz je uvedený nižšie:

vytvoriť prihlasovacie linuxhint
s heslom='heslo';

Vyššie uvedený príkaz by mal vytvoriť používateľa s používateľským menom linuxhint a zadaným heslom.

Vytvorte vzorovú databázu

Po definovaní prihlasovacieho mena môžeme vytvoriť databázu, v ktorej sa bude používateľ zdržiavať. Dotazy vyzerajú takto:

zahodiť databázu, ak existuje resolver;

vytvoriť prekladač databázy;

použite resolver;

vypustiť tabuľku, ak existujú záznamy;

vytvoriť záznamy v tabuľke (
id int nie je nulová identita(1,
1) primárny kľúč,
server_name varchar(50),
server_address varchar(255) nie je null,
kompresia_method varchar(100) predvolená hodnota 'žiadna',
size_on_disk float nie je null,
size_compressed float,
total_records int not null,
dátum_počiatku
);
vložiť
do
ENTRIES(názov_servera,
adresa servera,
kompresná_metóda,
veľkosť_na_disku,
size_compressed,
celkove_zaznamy,
init_date)
hodnoty
('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');

Vytvorte používateľa pre prihlásenie

Po vytvorení databázy a tabuľky môžeme vytvoriť používateľa pre prihlásenie do linuxhintu ako:

použite resolver
vytvoriť používateľský linuxhint
pre prihlásenie linuxhint;

Prihláste sa ako Nový používateľ

Ďalej sa prihláste ako novovytvorený používateľ. Príkaz je takýto:

setuser 'linuxhint';

Po prihlásení sa môžeme pokúsiť zobraziť tabuľky spustením príkazu select:

vyberte * zo záznamov;

Spustenie vyššie uvedeného dotazu by malo vrátiť chybu:

Správa 229, úroveň 14, štát 5, linka 379
Povolenie SELECT bolo odmietnuté pre objekt 'položky', databázu 'resolver', schému 'dbo'.

Je to preto, že používateľ linuxhintu nemá žiadne povolenia na databázu, vrátane povolení SELECT.

Udeliť Používateľovi povolenie

Musíme udeliť oprávnenia SELECT, aby sme používateľovi umožnili zobraziť informácie uložené v tabuľkách.

Na to sa musíte prihlásiť pomocou administrátorského účtu SQL Server.

Ďalej spustite dotaz ako:

udeliť výber na položky linuxhint;

Po spustení sa prihláste ako používateľ linuxhintu a použite príkaz SELECT.

vyberte * zo záznamov;

V tomto prípade príkaz vráti tabuľku, pretože používateľ má oprávnenia SELECT

Používateľovi môžete prideliť aj ďalšie povolenia, napríklad vložiť a odstrániť, ako:

povoliť vkladanie, mazanie záznamov do linuxhintu;

v tomto prípade by mal mať používateľ linuxhintu oprávnenia SELECT, INSERT a DELETE v tabuľke záznamov.

Záver

V tomto príspevku sme skúmali použitie príkazu GRANT na serveri SQL Server. Príkaz vám umožňuje prideliť povolenia danému principálu.