Kontrolli ta 'aċċess għal Utenti u Rwoli f'SQL

Is-sigurtà hija ta 'importanza kbira għall- amministraturi tal-bażijiet tad-dejta li jfittxu li jipproteġu l-gigabytes tagħhom ta' dejta tan-negozju vitali mill-għajnejn attivi ta 'barranin u persuni insiders mhux awtorizzati li jippruvaw jaqbżu l-awtorità tagħhom. Is -sistemi kollha ta ' ġestjoni tad-database relazzjonali jipprovdu xi tip ta' mekkaniżmi tas-sigurtà intrinsiċi mfassla biex jimminimizzaw dan it-theddid. Jvarjaw mill-protezzjoni tal-password sempliċi offruta minn Microsoft Access għall-istruttura kumplessa ta 'utent / rwol appoġġjata minn databases relazzjonali avvanzati bħal Oracle u Microsoft SQL Server. Dan l-artikolu jiffoka fuq il-mekkaniżmi ta 'sigurtà komuni għad-databases kollha li jimplimentaw il -Lingwa ta' Mistoqsija Strutturata (jew SQL ). Flimkien, immexxu l-proċess ta 'tisħiħ tal-kontrolli ta' l-aċċess għad-data u niżguraw is-sigurtà tad-data tiegħek.

Utenti

Id-databases ibbażati fuq is-server kollha jappoġġaw kunċett ta 'utent simili għal dak użat fis-sistemi operattivi tal-kompjuter. Jekk tkun familjari mal-ġerarkija tal-utent / grupp misjuba f'Microsoft Windows NT u Windows 2000, issib li l-gruppi ta 'utenti / rwol appoġġati minn SQL Server u Oracle huma simili ħafna.

Huwa rrakkomandat ħafna li toħloq kontijiet individwali ta 'l-utent ta' database għal kull persuna li tkun qed taċċessa d-database tiegħek. Huwa teknikament possibbli li taqsam il-kontijiet bejn l-utenti jew sempliċement tuża kont ta 'utent wieħed għal kull tip ta' utent li jeħtieġ aċċess għad-database tiegħek, iżda niddiskora din il-prattika għal żewġ raġunijiet. L-ewwel, se telimina r-responsabbiltà individwali - jekk utent jagħmel bidla fid-database tiegħek (ejja ngħidu billi nagħti lilu nnifsu żieda ta '$ 5,000), inti mhux se tkun kapaċi tirrintraċċaha lura lil persuna speċifika bl-użu ta' reġistri tal-verifika. Barra minn hekk, jekk utent speċifiku jħalli l-organizzazzjoni tiegħek u tixtieq tneħħi l-aċċess tiegħu mid-database, int tkun sfurzat tbiddel il-password li l-utenti kollha jistrieħu fuqhom.

Il-metodi għall-ħolqien ta 'kontijiet ta' l-utent ivarjaw minn pjattaforma għal pjattaforma u jkollok tikkonsulta d-dokumentazzjoni speċifika tiegħek tad-DBMS għall-proċedura eżatta. L-utenti tal-Microsoft SQL Server għandhom jinvestigaw l-użu tal-proċedura maħżuna sp_adduser. L-amministraturi ta 'l-Oracle Database isibu l-utent ta' CREATE USER utli. Inti tista 'wkoll tkun trid tinvestiga skemi alternattivi ta' awtentikazzjoni. Per eżempju, Microsoft SQL Server jappoġġja l-użu ta 'Windows NT Integrated Security. Taħt din l-iskema, l-utenti huma identifikati għad-database mill-kontijiet tal-utent tal-Windows NT tagħhom u mhumiex meħtieġa li jidħlu ID tal-utent addizzjonali u password biex ikollhom aċċess għad-database. Dan l-approċċ huwa estremament popolari fost l-amministraturi tal-bażijiet tad-dejta minħabba li jbiddel il-piż tal-ġestjoni tal-kontijiet mal-persunal tal-amministrazzjoni tan-netwerk u jipprovdi l-faċilità ta 'reġistrazzjoni unika għall-utent aħħari.

Rwoli

Jekk int f'ambjent b'numru żgħir ta 'utenti, probabbilment ikollok issib li l-ħolqien ta' kontijiet tal-utent u l-assenjazzjoni ta 'permessi direttament lilhom huwa biżżejjed għall-bżonnijiet tiegħek. Madankollu, jekk ikollok numru kbir ta 'utenti, x'aktarx tkun imħawwad bil-piż li żżomm il-kontijiet u l-permessi xierqa. Biex ittaffi dan il-piż, id-databases relazzjonali jappoġġaw il-kunċett tar-rwoli. Ir-rwoli ta 'database jiffunzjonaw b'mod simili għall-gruppi tal-Windows NT Il-kontijiet ta 'l-utent huma assenjati għar-rwol (i) u l-permessi huma assenjati għar-rwol kollu kemm hu minflok il-kontijiet ta' l-utent individwali. Pereżempju, nistgħu noħolqu rwol tad-DBA u mbagħad żid il-kontijiet tal-utenti tal-persunal amministrattiv tagħna għal dan ir-rwol. Ladarba għamilna dan, nistgħu nagħtu permess speċifiku lill-amministraturi kollha preżenti (u futuri) billi sempliċement jassenjaw il-permess għar-rwol. Għal darb'oħra, il-proċeduri għall-ħolqien ta 'rwoli tvarja minn pjattaforma għal pjattaforma. L-amministraturi tal-MS SQL Server għandhom jinvestigaw il-proċedura maħżuna sp_addrole filwaqt li d-DBA tal-Oracle għandhom jużaw is-sintassi ta 'CREATE ROLE.

Għoti ta 'Permessi

Issa li aħna żiedu lill-utenti fid-database tagħna, wasal iż-żmien li tibda ssaħħaħ is-sigurtà billi żżid il-permessi. L-ewwel pass tagħna se jkun li nagħtu permessi tad-database xierqa lill-utenti tagħna. Ahna nwettqu dan permezz tal-użu tad-dikjarazzjoni GRANT SQL.

Hawn is-sintassi tad-dikjarazzjoni:

GĦOTJA
[FUQ ]
GĦAL
[MA 'GĦAŻLA TA' GĦOTJA]

Issa, ejja nħarsu lejn din id-dikjarazzjoni line-by-line. L-ewwel linja, GĦOTJA , tippermettilna nispeċifikaw il-permessi speċifiċi tal-mejda li qed nagħtu. Dawn jistgħu jkunu permessi fuq il-mejda (bħal SELECT, INSERT, UPDATE u DELETE) jew permessi ta 'database (bħal CREATE TABLE, ALTER DATABASE u GRANT). Jista 'jingħata aktar minn permess wieħed f'dikjarazzjoni GRANT waħda, iżda permessi fil-livell tal-mejda u permessi fil-livell ta' database ma jistgħux jingħaqdu f'dikjarazzjoni waħda.

It-tieni linja, FUQ , tintuża biex tispeċifika t-tabella affettwata għal permessi fil-livell tal-mejda. Din il-linja titħalla barra jekk qed nagħtu permessi fil-livell tad-database. It-tielet linja tispeċifika l-utent jew ir-rwol li qed jingħata permessi.

Fl-aħħarnett, ir-raba 'linja, MA GĦAŻLA TA' GĦOTJA, hija fakultattiva. Jekk din il-linja hija inkluża fid-dikjarazzjoni, l-utent affettwat huwa wkoll permess li jagħti dawn l-istess permessi lil utenti oħra. Innota li l-GĦAN MA 'L-GĦOTJA TAL-GĦOTJA ma jistax jiġi speċifikat meta l-permessi huma assenjati għal rwol.

Eżempji

Ejja nħarsu lejn ftit eżempji. Fl-ewwel xenarju tagħna, dan l-aħħar kerrejna grupp ta '42 operatur tad-dħul tad-dejta li ser iżidu u jżommu rekords tal-klijenti. Huma għandhom ikunu jistgħu jkollhom aċċess għall-informazzjoni fit-tabella tal-Klijenti, jimmodifikaw din l-informazzjoni u jżidu rekords ġodda mat-tabella. Huma m'għandhomx ikunu jistgħu jħassru għal kollox rekord mid-database. L-ewwel, għandna noħolqu kontijiet ta 'l-utenti għal kull operatur u mbagħad żidhom kollha għal rwol ġdid, DataEntry. Sussegwentement, għandna nużaw id-dikjarazzjoni SQL li ġejja biex tagħtihom il-permessi xierqa:

GĦOTJA SELECT, INSERT, UPDATE
FUQ IL-Klijenti
Lil DataEntry

U dak kollu li hemm għaliha! Issa ejjie eżaminat każ fejn aħna qed nassenjaw il-permessi fil-livell tad-database. Irridu nħallu lill-membri tar-rwol tal-DBA li jżidu tabelli ġodda mad-database tagħna. Barra minn hekk, irridu li jkunu jistgħu jagħtu permess ieħor lill-utenti biex jagħmlu l-istess. Hawn il-prospett SQL:

TABELLA TA 'GĦOTJA TA' GĦOTJA
GĦAL DBA
MA GĦAŻLA TA 'GĦOTJA

Avviż li konna inkludiet il-linja B'NOTA TA 'GĦOTJA TA' GĦOTJA li tiżgura li d-DBA tagħna jistgħu jassenjaw dan il-permess lil utenti oħra.

It-tneħħija tal-Permessi

Ladarba konna ngħataw il-permessi, ta 'spiss jirriżulta li huwa meħtieġ li dawn jiġu revokati f'data aktar tard. Fortunatament, SQL tagħtina l-kmand REVOKE biex tneħħi l-permessi mogħtija qabel. Hawn is-sintassi:

REVOKE [GĦAŻLA TA 'GĦOTJA GĦAL]
FUQ
MINN

Tinduna li s-sintassi ta 'dan il-kmand huma simili għal dak tal-kmand tal-GĦOTJA. L-unika differenza hija li MA L-GĦAŻLA TA 'L-GĦOTJA hija speċifikata fuq il-linja tal-kmand REVOKE aktar milli fit-tmiem tal-kmand. Bħala eżempju, ejja nimmaġinaw irridu nirrevokaw il-permess mogħti qabel minn Mary biex tneħħi r-rekords mid-database tal-Klijenti. We'd tuża l-kmand li ġej:

REVOKE DELETE
FUQ IL-Klijenti
MINN Marija

U dak kollu li hemm għaliha! Hemm mekkaniżmu addizzjonali wieħed appoġġjat minn Microsoft SQL Server li ta 'min isemmi - il-kmand DENY. Dan il-kmand jista 'jintuża biex jiċħad espliċitament permess lil utent li kieku jista' jkollhom permezz ta 'sħubija fil-preżent jew fil-ġejjieni. Hawn is-sintassi:

DENY
FUQ
GĦAL

Eżempji

B'referenza għall-eżempju preċedenti tagħna, ejja nimmaġina li Marija kienet ukoll membru tar-rwol tal-Maniġers li wkoll kellu aċċess għat-tabella tal-Klijenti. L-istqarrija REVOKE ta 'qabel ma tkunx biżżejjed biex tiċħad l-aċċess tagħha għat-tabella. Tneħħi l-permess mogħti lilha permezz ta 'dikjarazzjoni GRANT immirata lejn il-kont tal-utent tagħha, iżda ma taffettwax il-permessi miksuba permezz tas-sħubija tagħha fir-rwol tal-Maniġers. Madankollu, jekk nużaw dikjarazzjoni DENY se timblokka l-wirt tagħha tal-permess. Hawn il-kmand:

DENY DELETE
FUQ IL-Klijenti
Lil Marija

Il-kmand DENY essenzjalment joħloq "permess negattiv" fil-kontrolli ta 'aċċess għad-database. Jekk aktar tard iddeċidejna li nagħtu permess lil Mary biex tneħħi r-ringieli mit-tabella tal-Klijenti, ma nistgħux sempliċement jużaw il-kmand tal-GĦOTJA. Dak il-kmand ikun immedjatament imwarrab mid-DENY eżistenti. Minflok, l-ewwel nużaw il-kmand REVOKE biex inneħħu l-permess permess tad-dħul kif ġej:

REVOKE DELETE
FUQ IL-Klijenti
MINN Marija

Int tinduna li dan il-kmand huwa eżattament l-istess bħal dak użat biex jitneħħa permess pożittiv. Ftakar li l-kmand DENY u GRANT jikkmanda kemm jaħdmu b'mod simili *; dawn it-tnejn joħolqu permessi (pożittivi jew negattivi) fil-mekkaniżmu ta 'kontroll ta' l-aċċess għal database. Il-kmand REVOKE jneħħi l-permessi kollha pożittivi u negattivi għall-utent speċifikat. Ladarba dan il-kmand inħareġ, Marija tkun tista 'tħassar ringieli mit-tabella jekk hi membru ta' rwol li jippossjedi dak il-permess. Alternattivament, jista 'jinħareġ kmand tal-GĦOTJA biex jipprovdi l-permess TINFISSA direttament lill-kont tagħha.

Matul dan l-artikolu, tgħallimt ħafna dwar il-mekkaniżmi ta 'kontroll ta' aċċess appoġġjati mill-Lingwa Standard tal-Mistoqsijiet. Din l-introduzzjoni għandha tagħtik punt ta 'tluq tajjeb, iżda nħeġġiġek tirreferi d-dokumentazzjoni tad-DBMS tiegħek biex titgħallem il-miżuri ta' sigurtà msaħħa appoġġjati mis-sistema tiegħek. Int issib li bosta databases jappoġġjaw mekkaniżmi ta 'kontroll ta' aċċess aktar avvanzati, bħall-għoti ta 'permessi fuq kolonni speċifiċi.