SQL Server GRANT

Sql Server Grant



Sa artikulong ito, mauunawaan mo kung paano gamitin ang GRANT na pahayag sa SQL Server upang magbigay ng mga pahintulot sa isang securable sa isang punong-guro.

SQL Server Securable at Principal

Ang isang securable ay tumutukoy sa mga mapagkukunan na kinokontrol ng SQL Server Database Engine authorization system ang pag-access. Ang isang halimbawa ay isang talahanayan ng database.

Ang isang punong-guro ay tumutukoy sa anumang entity na nangangailangan ng access sa anumang mapagkukunan ng SQL Server. Halimbawa, ang isang gumagamit na humihiling ng mga pahintulot sa isang talahanayan ay isang punong-guro.







Pahayag ng Grant ng SQL Server

Ipinapakita ng sumusunod ang syntax ng GRANT command sa SQL Server:



MAGBIGAY ng mga pahintulot
SA securable SA pangunahing;

Kailangan mong tukuyin ang pahintulot na nais mong italaga sa punong-guro bilang isang listahan na pinaghihiwalay ng kuwit.



Binibigyang-daan ka ng ON na keyword na tukuyin ang securable kung saan inilalapat ang mga pahintulot. Sa wakas, binibigyang-daan ka ng TO na keyword na itakda ang target na punong-guro.





Halimbawa, ang paggawa ng user gamit ang CREATE USER statement ay hindi tumutukoy sa mga pahintulot para sa user na iyon. Samakatuwid, mahalaga na gamitin ang GRANT na pahayag upang itakda ang mga pahintulot para sa user na iyon.

Kumuha tayo ng isang halimbawa.



Lumikha ng Halimbawang Pag-login

Magsimula tayo sa pamamagitan ng paglikha ng sample na pag-log in para sa mga layunin ng paglalarawan. Ang query ay tulad ng ibinigay sa ibaba:

lumikha ng login linuxhint
may password='password';

Ang command sa itaas ay dapat lumikha ng isang user na may username na linuxhint at ang tinukoy na password.

Lumikha ng Sample na Database

Maaari kaming lumikha ng isang database kung saan titira ang user kapag natukoy na namin ang isang login. Ang mga query ay tulad ng ipinapakita:

i-drop ang database kung mayroong solver;

lumikha ng solver ng database;

gumamit ng solver;

drop table kung may mga entry;

lumikha ng mga entry sa talahanayan (
id int hindi null identity(1,
1) pangunahing susi,
server_name varchar(50),
server_address varchar(255) hindi null,
compression_method varchar(100) default na 'wala',
size_on_disk float hindi null,
size_compressed float,
total_records int hindi null,
petsa ng init_date
);
ipasok
sa
ENTRIES(server_name,
address ng server,
compression_method,
size_on_disk,
size_compressed,
kabuuang_tala,
init_date)
mga halaga
('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');

Gumawa ng User para sa Login

Kapag nagawa na namin ang database at talahanayan, maaari kaming lumikha ng user para sa linuxhint login bilang:

gumamit ng solver
lumikha ng linuxhint ng gumagamit
para sa pag-login sa linuxhint;

Mag-login bilang Bagong User

Susunod, hayaan kaming mag-log in bilang bagong likhang user. Ang utos ay tulad ng ipinapakita:

setuser 'linuxhint';

Sa sandaling naka-log in, maaari naming subukang tingnan ang mga talahanayan sa pamamagitan ng pagpapatakbo ng piliin na utos:

piliin ang * mula sa mga entry;

Ang pagpapatakbo ng query sa itaas ay dapat magbalik ng isang error:

Msg 229, Level 14, State 5, Line 379
Ang pahintulot na SELECT ay tinanggihan sa object 'entry', database 'resolver', schema 'dbo'.

Ito ay dahil ang gumagamit ng linuxhint ay walang anumang mga pahintulot sa database, kasama ang mga pahintulot na PUMILI.

Magbigay ng Pahintulot sa Gumagamit

Kailangan naming ibigay ang mga pahintulot na PUMILI upang payagan ang user na tingnan ang impormasyong nakaimbak sa mga talahanayan.

Para diyan, kailangan mong mag-log in gamit ang SQL Server administrative account.

Susunod, patakbuhin ang query bilang:

bigyan ng pili sa mga entry sa linuxhint;

Kapag naisakatuparan, mag-login bilang linuxhint user at gamitin ang SELECT statement.

piliin ang * mula sa mga entry;

Sa kasong ito, ibinabalik ng command ang talahanayan dahil ang user ay may mga pahintulot na PUMILI

Maaari ka ring magtalaga ng iba pang pahintulot sa user, tulad ng pagpasok at pagtanggal bilang:

bigyan insert, tanggalin sa mga entry sa linuxhint;

sa kasong ito, ang gumagamit ng linuxhint ay dapat magkaroon ng mga pahintulot na SELECT, INSERT, at DELETE sa talahanayan ng mga entry.

Konklusyon

Sa post na ito, ginalugad namin ang paggamit ng GRANT command sa SQL Server. Ang utos ay nagpapahintulot sa iyo na magtalaga ng mga pahintulot sa isang ibinigay na punong-guro.