Kontwòl Aksè pou Itilizatè yo ak Wòl nan SQL

Sekirite se esansyèl nan administratè baz done k ap chèche pwoteje jigabit yo nan done biznis vital soti nan je yo furter nan etranje ki pa otorize ak inisye eseye depase otorite yo. Tout sistèm jesyon relasyon baz done bay kèk sòt de mekanis sekirite entrinsè ki fèt pou misyon pou minimize menas sa yo. Yo varye soti nan pwoteksyon modpas la senp ofri nan Microsoft Aksè nan itilizatè a konplèks itilizatè / wòl sipòte pa baz done avanse relasyon tankou Oracle ak Microsoft SQL sèvè. Atik sa a konsantre sou mekanis sekirite yo ki komen nan tout baz done ki aplike lang lan estriktire Query (oswa SQL ). Ansanm, nou pral mache nan pwosesis la nan ranfòse kontwòl aksè done ak asire sekirite a nan done ou.

Itilizatè yo

Sèvè ki baze sou baz done tout sipòte yon konsèp itilizatè ki sanble ak sa yo itilize nan sistèm opere òdinatè. Si w ap abitye ak yerachi itilizatè / gwoup yo te jwenn nan Microsoft Windows NT ak Windows 2000, ou pral jwenn ke gwoupman yo itilizatè / wòl sipòte pa sèvè SQL ak Oracle yo sanble anpil.

Li trè rekòmande ke ou kreye kont itilizatè endividyèl baz pou chak moun ki pral gen aksè nan baz done ou. Li nan teknikman posib yo pataje kont ant itilizatè oswa tou senpleman itilize yon sèl kont itilizatè pou chak kalite itilizatè ki bezwen gen aksè a baz done ou, men mwen fòtman dekouraje pratik sa a pou de rezon. Premyèman, li pral elimine responsablite endividyèl-si yon itilizatè fè yon chanjman nan baz done ou a (kite a di pa bay tèt li yon ogmantasyon $ 5,000), ou pa yo pral kapab trase li tounen nan yon moun espesifik nan itilize nan jounal kontwòl kontab. Anplis de sa, si yon itilizatè espesifik kite òganizasyon ou epi ou vle retire aksè li soti nan baz done a, ou pral fòse yo chanje modpas la ke tout itilizatè konte sou.

Metòd pou kreye kont itilizatè varye de platfòm nan platfòm epi ou pral gen konsilte dokiman DBMS-espesifik ou pou pwosedi a egzak. Sèvè Microsoft SQL sèvè yo ta dwe mennen ankèt sou itilizasyon pwosedi a sp_adduser ki estoke. Oracle administratè baz done ap jwenn itilizatè CREATE itilizatè itil. Ou menm tou ou ka vle envestige rapid otantifikasyon altènatif. Pa egzanp, Microsoft SQL sèvè sipòte itilizasyon Windows NT Integrated Security. Anba konplo sa a, itilizatè yo idantifye nan baz done a pa kont itilizatè Windows NT yo epi yo pa oblije antre nan yon ID itilizatè adisyonèl ak modpas jwenn aksè nan baz done a. Apwòch sa a se trè popilè nan mitan administratè baz done paske li orè fado a nan jesyon kont nan rezo a administrasyon rezo epi li bay fasilite nan yon sèl siy-sou nan itilizatè a fen.

Wòl

Si w ap nan yon anviwònman ki gen yon ti kantite itilizatè, ou pral pwobableman jwenn ke kreye itilizatè kont ak plase autorisations dirèkteman nan yo ase pou bezwen ou yo. Sepandan, si ou gen yon gwo kantite itilizatè, ou pral gen plis chans yo submerged pa chay la nan kenbe kont ak otorizasyon apwopriye. Pou fasilite fado sa a, baz relasyonèl sipòte nosyon de wòl. Wòl Database fonksyone menm jan ak Windows NT gwoup yo. Kont itilizatè yo asiyen nan wòl (yo) ak otorizasyon yo Lè sa a, asiyen nan wòl la kòm yon antye olye ke kont itilizatè endividyèl yo. Pou egzanp, nou te kapab kreye yon wòl DBA ak Lè sa a, ajoute kont itilizatè yo nan anplwaye administratif nou nan wòl sa a. Yon fwa nou te fè sa, nou ka bay yon pèmisyon espesifik nan tout administratè prezan (ak lavni) pa senpleman plase pèmisyon an nan wòl la. Yon fwa ankò, pwosedi yo pou kreye wòl varye de platfòm platfòm. MS SQL sèvè administratè yo ta dwe mennen ankèt sou sp_addrole ki estoke pwosedi a pandan Oracle DBAs ta dwe itilize sentaks la RÈK CRELE.

Granting Permissions

Koulye a, ke nou te ajoute itilizatè nan baz done nou an, li lè yo kòmanse ranfòse sekirite pa ajoute autorisations. Premye etap nou yo pral bay otorizasyon baz done ki apwopriye itilizatè nou yo. Nou pral akonpli sa a nan itilize nan deklarasyon an SQL GRANT.

Isit la nan sentaks la nan deklarasyon an:

GRANT
[ON ]
POU
[AK GRANT OPSYON]

Koulye a, kite a pran yon gade nan deklarasyon sa a liy-pa-liy. Premye liy lan, GRANT , pèmèt nou presize otorizasyon yo tab espesifik nou bay. Sa yo kapab swa nivo nivo autorisations (tankou SELECT, INSERT, UPDATE ak DELETE) oswa pèmisyon baz done (tankou CREATE TABLE, ALTER DATABASE ak GRANT). Plis pase yon pèmisyon kapab akòde nan yon deklarasyon GRANT sèl, men otorizasyon tab nivo-nivo ak pèmisyon baz done-nivo pa ka konbine nan yon deklarasyon sèl.

Liy nan dezyèm, sou , yo itilize presize tab la ki afekte pou otorizasyon tab nivo. Sa a se liy omisyon si nou ap bay otorizasyon baz done baz-nivo. Liy nan twazyèm espesifye itilizatè a oswa wòl ke yo te akòde autorisations.

Finalman, liy lan katriyèm, ak OPSYON GRANT, se si ou vle. Si liy sa a enkli nan deklarasyon an, itilizatè a afekte tou pèmèt yo bay otorizasyon sa yo menm nan itilizatè lòt. Remake byen ke OPSYON GRANT la pa ka espesifye lè yo otorize autorisations yo nan yon wòl.

Egzanp yo

Ann gade nan kèk egzanp. Nan senaryo premye nou an, nou te fèk anboche yon gwoup de 42 antre done operatè ki pral ajoute ak kenbe dosye kliyan. Yo bezwen pou kapab jwenn aksè nan enfòmasyon nan tablo Kliyan an, modifye enfòmasyon sa yo epi ajoute dosye nouvo sou tab la. Yo pa ta dwe kapab efase tout yon dosye ki soti nan baz done a. Premyèman, nou ta dwe kreye kont itilizatè pou chak operatè epi ajoute yo tout nan yon nouvo wòl, DataEntry. Apre sa, nou ta dwe itilize deklarasyon SQL sa yo pou bay yo otorizasyon apwopriye yo:

GRANT SELECT, INSERT, MIZAJOU
Sou kliyan
POU DataEntry

Ak sa a tout gen nan li! Koulye a, kite a egzaminen yon ka kote nou ap plase autorisations baz done nivo. Nou vle pèmèt manm nan wòl DBA pou ajoute nouvo tab nan baz done nou an. Anplis de sa, nou vle yo pou kapab bay itilizatè lòt pèmisyon fè menm bagay la. Isit la nan deklarasyon an SQL:

GRANT KREYE TAB
POU DBA
AK OPSYON GRANT

Remake ke nou te enkli liy lan ak GRANT OPSYON asire ke DBA nou yo ka bay pèmisyon sa a itilizatè lòt.

Retire pèmisyon yo

Yon fwa nou te akòde autorisations, li souvan pwouve nesesè pou anile yo nan yon dat pita. Erezman, SQL bay nou ak lòd la REVOKE yo retire otorizasyon deja akòde. Isit la nan sentaks la:

REVOKE [OPSYON GRANT POU]
Sou
Soti nan

Ou ap remake ke sentaks la nan lòd sa a se menm jan ak sa yo ki nan lòd la GRANT. Sèl diferans la se ke ak GRANT OPSYON yo espesifye sou liy lan lòd REVOKE olye ke nan fen lòd la. Kòm yon egzanp, se pou nou imajine nou vle anile pèmisyon ki te deja akòde Mari a pou retire dosye ki soti nan baz done kliyan an. Nou ta sèvi ak kòmandman sa a:

REVOKE DELETE
Sou kliyan
Soti nan Mari

Ak sa a tout gen nan li! Genyen yon lòt mekanis sipòte pa Microsoft SQL sèvè ki vo mansyone-lòd la DENY. Ka kòmandman sa a dwe itilize klèman refize yon pèmisyon nan yon itilizatè yo ke yo ta ka otreman gen nan yon manm wòl aktyèl oswa lavni. Isit la nan sentaks la:

DENY
Sou
POU

Egzanp yo

Retounen nan egzanp anvan nou an, se pou yo imajine ke Mari te tou yon manm nan wòl nan Manadjè ki tou te gen aksè a tab la kliyan. Anvan REVOKE deklarasyon an pa ta ase pou refize aksè li sou tab la. Li ta retire pèmisyon an akòde li nan yon deklarasyon GRANT vize kont itilizatè li, men li pa ta afekte otorizasyon yo te vin nan manm li nan wòl Manadjè yo. Sepandan, si nou itilize yon deklarasyon DENY li pral bloke pòsyon tè li nan pèmisyon an. Isit la nan lòd la:

DWE DELETE
Sou kliyan
POU Mari

Kòmandman an DENY esansyèlman kreye yon "pèmisyon negatif" nan kontwole yo aksè baz done. Si nou pita deside bay Mari pèmisyon pou retire ranje yo nan tablo Kliyan an, nou pa ka senpleman itilize lòd GRANT la. Kòmandman sa a ta dwe imedyatman twòp pa DENY a ki deja egziste. Olye de sa, nou ta premye itilize kòmandman an REVOKE yo retire antre nan pèmisyon negatif jan sa a:

REVOKE DELETE
Sou kliyan
Soti nan Mari

Ou pral remake ke lòd sa a se egzakteman menm jan ak yon sèl la itilize yo retire yon pèmisyon pozitif. Sonje ke DENY a ak GRANT kòmandman tou de travay nan yon mòd menm jan an * mdash; yo tou de kreye autorisations (pozitif oswa negatif) nan mekanis nan kontwòl aksè baz done. Repons lan REVOKE retire tout otorizasyon pozitif ak negatif pou itilizatè a espesifye. Yon fwa yo te bay lòd sa a, Mari yo pral kapab efase ranje nan tablo a si li se yon manm nan yon wòl ki posede sa pèmisyon. Altènativman, yo ka bay yon lòd GRANT pou bay pèmisyon DELETE dirèkteman nan kont li.

Pandan tout tan an nan atik sa a, ou te aprann yon kontra bon sou mekanis yo kontwòl aksè sipòte pa Lang la Creole Query. Entwodiksyon sa a ta dwe ba ou yon bon pwen depa, men mwen ankouraje w referans dokiman DBMS ou pou aprann mezi sekirite ki ranfòse nan sistèm ou an. Ou ap jwenn ke baz done anpil sipòte plis avanse mekanis kontwòl aksè, tankou bay otorizasyon sou kolòn espesifik.