Access Controls alang sa Users ug Roles sa SQL

Ang kasigurohan mao ang labing hinungdanon sa mga administrador sa database nga nagtinguha sa pagpanalipod sa ilang mga gigabytes sa mahinungdanon nga datos sa negosyo gikan sa mga mata sa mga dili awtorisado nga mga tagagawas ug sa mga paningkamot nga mosobra sa ilang awtoridad. Ang tanan nga sistema sa pagdumala sa database sa paghatag sa paghatag og usa ka matang sa intrinsik nga mga mekanismo sa seguridad nga gidisenyo aron makunhuran ang mga hulga. Naglangkob kini gikan sa yano nga proteksyon sa password nga gitanyag sa Microsoft Access ngadto sa komplikadong user / role nga istruktura nga gipaluyohan sa advanced relational databases sama sa Oracle ug Microsoft SQL Server. Kini nga artikulo nagpunting sa mga mekanismo sa seguridad nga kasagaran sa tanan nga mga database nga nagpatuman sa Structured Query Language (o SQL ). Mag-uban, maglakaw kami sa proseso sa pagpalig-on sa kontrol sa access sa data ug pagsiguro sa kaluwasan sa imong datos.

Mga tiggamit

Ang mga database nga nakabase sa server ang tanan nagsuporta sa usa ka konsepto sa user nga susama sa gigamit sa mga computer operating system. Kung pamilyar ka sa user / group hierarchy nga makita sa Microsoft Windows NT ug Windows 2000, imong makita nga ang user / role groups nga gipaluyohan sa SQL Server ug Oracle susama kaayo.

Gisugyot kaayo nga maghimo ka sa tagsa-tagsa nga database sa mga user account alang sa matag tawo nga mag-access sa imong database. Kini posible nga ipakigbahin ang mga account tali sa mga tiggamit o gamit lamang sa usa ka user account alang sa matag matang sa tiggamit nga kinahanglan nga ma-access ang imong database, apan kusganon akong gipaluya kining praktis tungod sa duha ka hinungdan. Una, kini magwagtang sa indibidwal nga pagkamay-tulubagon-kung ang usa ka user makahimo sa usa ka pagbag-o sa imong database (ipaingon nga pinaagi sa paghatag sa iyang kaugalingon sa $ 5,000 nga pagtaas), dili ka makasubay niini balik sa usa ka piho nga tawo pinaagi sa paggamit sa mga troso nga audit. Dugang pa, kung ang usa ka partikular nga user mobiya sa imong organisasyon ug gusto nimo nga makuha ang iyang access gikan sa database, mapugos ka sa pag-usab sa password nga gisaligan sa tanan nga tiggamit.

Ang mga pamaagi alang sa pagmugna sa mga account sa tag-iya nagkalainlain gikan sa plataporma ngadto sa plataporma ug kinahanglan ka nga mokonsulta sa imong dokumentado nga partikular sa DBMS alang sa tukmang pamaagi Ang mga gumagamit sa Microsoft SQL Server kinahanglan nga mag-imbestiga sa paggamit sa sp_adduser nga gitipigan nga pamaagi. Ang mga administrador sa Oracle database makakaplag sa CREATE USER command mapuslanon. Ikaw mahimo usab nga mag-imbestigar sa alternatibo nga pamaagi sa pag-ila. Pananglitan, ang Microsoft SQL Server nagsuporta sa paggamit sa Windows NT Integrated Security. Ubos niini nga pamaagi, ang mga tigpaila giila sa database pinaagi sa ilang mga Windows NT user nga mga account ug dili kinahanglan nga mosulod sa usa ka dugang nga user ID ug password aron ma-access ang database. Kini nga pamaagi hilabihan ka popular sa mga database administrator tungod kay kini nag-usab sa gibug-aton sa pagdumala sa account ngadto sa kawani sa administrasyon sa network ug naghatag kini sa kasayon ​​sa usa ka single sign-on ngadto sa end user.

Mga tahas

Kon anaa ka sa usa ka palibot nga adunay gamay nga gidaghanon sa mga tiggamit, tingali imong makita nga ang pagmugna sa mga account sa tag-iya ug pagtugyan sa mga permiso direkta ngadto kanila igo alang sa imong mga panginahanglan. Bisan pa, kung adunay daghan kaayong mga tiggamit, lagmit malumsan ka sa gibug-aton sa paghupot sa mga account ug tukmang mga permiso. Aron mapagaan kini nga palas-anon, ang mga relational nga mga database nagsuporta sa ideya sa mga tahas. Ang mga tahas sa database magamit sama sa Windows NT nga mga grupo. Ang mga account sa account gi-assign sa (mga) papel ug mga permiso dayon gi-assign sa papel isip usa ka kinatibuk-an kay sa mga tagsa-tagsa nga mga account sa tiggamit. Pananglitan, makahimo kita og papel nga DBA ug dayon idugang ang mga account sa mga gumagamit sa atong kawani sa pagdumala niini nga papel. Sa higayon nga nahimo na nato kini, mahimo natong itudlo ang usa ka piho nga pagtugot sa tanan nga mga administrador karon (ug sa umaabot) pinaagi sa paghatag lamang sa pagtugot sa papel. Sa makausa pa, ang mga pamaagi alang sa paghimo sa mga papel magkalahi gikan sa plataporma ngadto sa plataporma. Ang mga administrador sa MS SQL Server kinahanglan nga mag-imbestigar sa sp_addrole nga gitipigan nga pamaagi samtang ang Oracle DBAs kinahanglan nga mogamit sa CREATE ROLE syntax.

Paghatag sa mga Pahintulot

Karon nga among gidugang ang mga tiggamit sa among database, kini ang panahon sa pagsugod sa pagpalig-on sa seguridad pinaagi sa pagdugang sa mga permiso. Ang una natong lakang mao ang paghatag og angay nga mga permiso sa database sa atong mga tiggamit. Atong buhaton kini pinaagi sa paggamit sa pahayag sa SQL GRANT.

Ania ang sintaks sa pamahayag:

GRANT
[ON

]
SA
[UBAN SA PAGPILI SA GUGMA]

Karon, tan-awon nato kini nga pamahayag sa matag-linya. Ang una nga linya, GRANT , nagtugot kanato sa pagtino sa piho nga permiso sa lamesa nga atong gihatag. Mahimo kini nga permiso sa lamesa (sama sa SELECT, INSERT, UPDATE ug DELETE) o database permissions (sama sa CREATE TABLE, ALTER DATABASE ug GRANT). Kapin sa usa ka permiso ang mahatag sa usa ka pahayag sa GRANT, apan ang permiso sa lebel sa lebel ug ang mga permiso sa lebel sa database dili mahimong ihiusa sa usa ka pamahayag.

Ang ikaduha nga linya, ON

, gigamit aron mahibal-an ang naapektuhan nga lamesa alang sa permiso sa lebel sa lamesa. Kini nga linya wala ilakip kung naghatag kami sa permiso sa lebel sa database. Ang ikatulong linya nagtino sa user o tahas nga gihatagan og mga permiso.

Sa kataposan, ang ika-upat nga linya, UG OPTION SA GRANT, opsyonal. Kon kini nga linya gilakip sa pamahayag, ang apektado sa user gitugutan usab sa paghatag niining parehong mga permiso sa ubang mga tiggamit. Timan-i nga ang WITH THE OPTION SA GRANT dili matino kon ang mga permiso gi-assign sa usa ka papel.

Mga pananglitan

Atong tan-awon ang pipila ka mga pananglitan. Sa una namong sitwasyon, bag-o namong gisuholan ang usa ka grupo sa 42 nga data entry operators nga magdugang ug magmentenar sa mga rekord sa customer. Kinahanglan nilang ma-access ang kasayuran diha sa lamesa sa mga Kustomer, usbon kini nga kasayuran ug idugang ang bag-ong mga rekord sa lamesa. Kinahanglan nga dili nila hingpit nga makuha ang rekord gikan sa database. Una, kinahanglan kita maghimo og mga account sa tag-iya sa matag operator ug dayon idugang kining tanan ngadto sa usa ka bag-ong papel, ang DataEntry. Sunod, kinahanglan natong gamiton ang mosunod nga pamahayag sa SQL aron paghatag kanila sa angay nga mga permiso:

PAGPILI, PAGSULOD, PAG-UPDATE
SA MGA Kustomer
TO DataEntry

Ug mao kana ang tanan nga anaa niini! Karon atong usisahon ang usa ka kaso diin kita naghatag ug permiso sa lebel sa database. Gusto namong tugutan ang mga miyembro sa DBA nga makadugang sa bag-ong mga lamesa sa among database. Dugang pa, gusto namo nga sila makahatag sa pagtugot sa ubang mga tiggamit sa pagbuhat sa ingon. Ania ang pahayag sa SQL:

PAGHIMO SA GRANT
SA DBA
UG OPTION SA GRANT

Matikdi nga among gilakip ang linya sa GRANT OPTION aron maseguro nga ang among mga DBA makahatag niini nga pagtugot sa ubang mga tiggamit.

Pagtangtang sa mga Permiso

Sa higayon nga gihatag na namo ang mga permiso, kini kanunay nga gikinahanglan aron mabawi sila sa ulahing petsa. Maayo na lang, ang SQL naghatag kanato sa REVOKE nga sugo sa pagwagtang sa kaniadto gitugot nga mga permiso. Ania ang syntax:

I-REVOKE [OPISYAL NGA GUGMA ALANG SA]
SA


GIKAN

Imong mamatikdan nga ang syntax niini nga sugo susama sa iya sa GRANT nga sugo. Ang bugtong kalainan mao nga ANG OPTION sa GRANT ang gipahayag sa REVOKE command line kay sa katapusan sa sugo. Ingon nga usa ka pananglitan, atong hunahunaon nga gusto natong ipakawalay ang pagtugot ni Maria nga kuhaon ang mga rekord gikan sa database sa mga Kustomer. Gigamit namon ang mosunod nga sugo:

IPATUMAN ANG KINAHANGLAN
SA MGA Kustomer
GIKAN ni Maria

Ug mao kana ang tanan nga anaa niini! Adunay usa ka dugang nga mekanismo nga gisuportahan sa Microsoft SQL Server nga angayan nga isulti-ang DENY nga sugo. Kini nga sugo mahimong gamiton aron sa tin-aw nga pagtangtang sa usa ka pagtugot ngadto sa usa ka tiggamit nga sila unta adunay pinaagi sa usa ka karon o sa umaabot nga pagkamiyembro sa papel. Ania ang syntax:

DENY
SA


SA

Mga pananglitan

Pagbalik sa atong kanhi nga panig-ingnan, atong gihunahuna nga si Maria usa usab ka sakop sa mga tahas sa Managers nga adunay access sa lamesa sa mga Customers. Ang miaging REVOKE nga pahayag dili igo nga ipanghimakak ang iyang access sa lamesa. Gikuha niini ang pagtugot nga gihatag kaniya pinaagi sa usa ka pahayag sa GRANT nga nagtumong sa iyang user account, apan dili makaapekto sa mga permiso nga nakuha pinaagi sa iyang pagkamiyembro sa mga papel sa Managers. Hinoon, kon mogamit kita sa pahayag sa DENY kini mag-ali sa iyang kabilin sa pagtugot. Ania ang sugo:

GAWASAN NIINI
SA MGA Kustomer
Kang Maria

Ang sugo sa DENY sa tinuud nagmugna og "negatibo nga pagtugot" sa database access control. Kon kita sa ulahi mohukom nga hatagan si Maria og pagtugot sa pagwagtang sa mga laray gikan sa lamesa sa mga Customers, dili nato mahimo ang paggamit lamang sa GRANT nga sugo. Kanang maong sugo pag-apod-apod gilayon sa kasamtangan nga DENY. Hinunoa, una namong gamiton ang REVOKE nga sugo sa pagtangtang sa negatibo nga pagtugot nga mosulod ingon sa mosunod:

IPATUMAN ANG KINAHANGLAN
SA MGA Kustomer
GIKAN ni Maria

Imong mamatikdan nga kini nga sugo susama gayud sa usa nga gigamit sa pagkuha sa positibo nga pagtugot. Hinumdomi nga ang DENY ug GRANT nagsugo nga magtrabaho sa susama nga paagi * mdash; silang duha naghimo sa mga permiso (positibo o negatibo) sa database access control mechanism. Ang mando sa REVOKE magwagtang sa tanan nga positibo ug negatibo nga mga permiso alang sa gitakda nga tiggamit. Sa higayon nga kini nga sugo nga gi-isyu, si Maria makahimo sa pagkuha sa mga laray gikan sa lamesa kon siya usa ka sakop sa usa ka papel nga adunay pagtugot. Sa laing bahin, ang usa ka GRANT nga sugo mahimo nga ma-isyu aron sa paghatag sa DELETE nga pagtugot direkta sa iyang account.

Sa tibuok nga bahin niini nga artikulo, nakakat-on ka og maayo bahin sa mga mekanismo sa pagkontrol sa access nga gisuportahan sa Standard Query Language. Kini nga pasiuna kinahanglan maghatag kanimo sa usa ka maayong pagsugod nga punto, apan nag-awhag ako kanimo sa paghisgot sa imong dokumentasyon sa DBMS aron mahibal-an ang gipaayo nga mga lakang sa seguridad nga gisuportahan sa imong sistema. Makit-an nimo nga daghang mga database ang nagsuporta sa mas daghan nga mga mekanismo sa access control, sama sa paghatag sa mga permiso sa piho nga mga kolum.