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 linuxhints 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 resolvervytvoriť 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 379Povolenie 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.