Kadali aksés pikeun Pamaké sarta Kalungguhan di SQL

Kaamanan nyaeta Cangkuang ka pangurus database néangan ngajaga néang maranéhna data bisnis vital tina panon prying tina luar diidinan sarta insiders ngusahakeun ngaleuwihan otoritas maranéhanana. Kabéh relational sistem manajemen database nyadiakeun sababaraha nurun mékanisme kaamanan intrinsik dirancang pikeun ngaleutikan ancaman ieu. Aranjeunna dibasajankeun perlindungan sandi basajan ditawarkeun ku Microsoft Aksés ka struktur pamaké / peran kompléks dirojong ku basis data relational canggih kawas Oracle sarta Microsoft SQL Server. Artikel ieu museurkeun kana mékanisme kaamanan umum ka sadaya basis data anu ngalaksanakeun terstruktur pamundut Basa (atawa SQL ). Duaan, urang gé leumpang ngaliwatan prosés strengthening kadali aksés data tur mastikeun kasalametan data Anjeun.

pamaké

basis server basis data sakabeh ngarojong konsép pamaké sarupa anu dipaké dina sistem operasi komputer. Mun anjeun geus wawuh jeung hirarki pamaké / grup kapanggih dina Microsoft Windows nt na Windows 2000, anjeun bakal manggihan yén groupings pamaké / peran dirojong ku SQL Server jeung Oracle pisan sarupa.

Hal ieu kacida dianjurkeun nu nyieun rekening database pamaké individual pikeun tiap jalma anu bakal ngakses databés anjeun. Ieu téhnisna mungkin babagi rekening antara pamaké atawa ngan saukur nganggo salah Rekening pamaké pikeun tiap jenis pamaké nu perlu ngakses databés anjeun, tapi kuring wani discourage prakték ieu dua alesan. Kahiji, bakal ngaleungitkeun akuntabilitas-lamun individu hiji pamaké ngajadikeun parobahan ka databés anjeun (hayu urang sebutkeun ku méré dirina $ 5,000 ngangkat), Anjeun moal bisa ngabasmi eta deui ka jalma husus ngaliwatan pamakéan log Inok. Saterusna, lamun a pamaké husus daun organisasi Anjeun tur hayang ngaleupaskeun nya aksés ti pangkalan data, anjeun bakal jadi kapaksa ngarobah sandikecap nu kabeh pamaké ngandelkeun kana.

Metodeu pikeun nyieun rekening pamaké rupa-rupa ti platform keur platform jeung anjeun bakal kudu konsultasi dokuméntasi DBMS-spésifik anjeun kanggo prosedur pasti. pamaké Microsoft SQL Server kedah nalungtik pamakéan prosedur sp_adduser disimpen. Oracle pangurus database bakal manggihan nu nyieun paréntah pamaké mangpaat. Anjeun oge bisa rék nalungtik schemes auténtikasi alternatif. Contona, Microsoft SQL Server ngarojong pamakéan Windows nt Kaamanan Integrated. Dina skéma ieu, pamaké anu dicirikeun ka database ku rekening maranéhanana Windows nt pamaké sarta teu diperlukeun pikeun nuliskeun hiji ID pamaké tambahan sareng kecap akses Anjeun pikeun ngakses databés. pendekatan ieu pisan populer di kalangan pangurus database sabab shifts beungbeurat manajemén akun kana staf administrasi jaringan sarta nyadiakeun betah a single tanda-on kana pamaké tungtung.

Kalungguhan

Mun anjeun dina lingkungan kalayan sajumlah leutik pamaké, anjeun meureun nimu nu nyieun rekening pamaké sarta assigning idin langsung ka aranjeunna geus cukup pikeun kaperluan anjeun. Sanajan kitu, lamun boga angka nu gede ngarupakeun pamaké, anjeun gé paling dipikaresep jadi overwhelmed ku beungbeurat rekening ngajaga tur idin ditangtoskeun. Betah beungbeurat ieu, basis data relational ngarojong Pamanggih ngeunaan kalungguhan. kalungguhan database fungsina kitu ka grup Windows nt. rekening pamaké dibéré pikeun peran (s) sarta idin anu lajeng ditugaskeun ka peran salaku sakabeh tinimbang rekening pamaké individu. Contona, urang bisa nyieun peran DBA lajeng nambahkeun rekening pamaké tina staf administrasi urang pikeun peran ieu. Sakali kami geus rengse ieu, urang tiasa ngadaptarkeun idin husus ka sadaya pangurus hadir (jeung engke) ku saukur assigning idin pikeun peran anu. Sakali deui, prosedur pikeun nyieun kalungguhan beda-beda ti platform keur platform. MS SQL Server pangurus kedah nalungtik sp_addrole disimpen prosedur bari Oracle DBAs kedah nganggo rumpaka Jieun peran.

granting Pangidinan

Ayeuna urang geus ditambahkeun pamaké pikeun database urang, éta waktu dimimitian strengthening kaamanan ku nambahkeun idin. Hambalan munggaran urang bakal nepi ka dibere idin database luyu pikeun pamaké urang. Ieu gé ngalengkepan ieu ngaliwatan pamakéan pernyataan SQL Grant.

Di dieu teh rumpaka tina pernyataan éta:

Grant
[ON ]
TO
[Kalawan Grant pilihan]

Ayeuna, hayu urang nyandak katingal di pernyataan garis-demi-garis ieu. Garis kahiji, Grant , ngamungkinkeun urang pikeun nangtukeun éta idin tabel husus urang granting. Ieu tiasa boh idin méja-tingkat (kayaning pilih, nyelapkeun, ngapdet tur ngahapus) atanapi idin database (kayaning Nyieun tabél, Ngarobah database na Grant). Leuwih ti hiji idin bisa dibales dina pernyataan Grant tunggal, tapi idin méja-tingkat sarta idin database-tingkat bisa jadi teu digabungkeun dina hiji pernyataan tunggal.

Garis kadua, ON , ieu dipaké pikeun nangtukeun tabel nu dimaksud keur idin méja-tingkat. garis ieu disingkahkeun lamun kami anu granting idin database-tingkat. Garis katilu hususna pamaké atawa peran anu keur dibales idin.

Tungtungna, garis kaopat, kalawan Grant pilihan, nya pilihan. Lamun garis ieu kaasup kana pernyataan kasebut, pamaké kapangaruhan oge diijinkeun pikeun ngabulkeun ieu idin sarua pikeun pamaké séjén. Catet yén pilihan kalayan Grant teu bisa dieusian nalika idin anu ditugaskeun pikeun peran hiji.

conto

Hayu urang nempo sababaraha conto. Dina skenario kahiji urang, kami geus nembe hired grup 42 operator Éntri data anu bakal nambahkeun sarta ngajaga rékaman customer. Éta kudu bisa ngakses informasi dina tabel Konsumén, ngaropéa informasi ieu sareng nambahkeun rékaman anyar kana tabél. Aranjeunna teu kedah tiasa sagemblengna ngahapus catetan ti pangkalan data. Kahiji, urang kedah nyieun rekening pamaké pikeun tiap operator lajeng nambahkeun kabeh kana peran anyar, DataEntry. Salajengna, urang kedah nganggo pernyataan SQL handap pikeun ngabulkeun eta idin luyu:

Grant pilih, nyelapkeun, ngapdet
ON Konsumén
TO DataEntry

Tur éta kabéh aya kana eta! Ayeuna hayu urang nalungtik hiji pasualan numana urang nuju assigning idin database-tingkat. Urang rék ngijinan anggota peran DBA pikeun nambahkeun tabel anyar pikeun database urang. Saterusna, urang rék ka bisa ngabulkeun pamaké idin séjén pikeun lakonan hal nu sarua. Di dieu teh pernyataan SQL:

Grant Nyieun tabél
TO DBA
Kalawan Grant pilihan

Bewara nu urang geus kaasup nu mibanda Grant pilihan garis pikeun mastikeun yén DBAs urang tiasa napelkeun idin ieu pamaké séjén.

nyoplokkeun Pangidinan

Sakali kami geus dibales idin, éta mindeng ngabuktikeun perlu nyabut aranjeunna di hiji tanggal engké. Untungna, SQL nyadiakeun kami kalayan paréntah nyabut nyabut idin samemehna dibales. Di dieu Éta rumpaka:

Nyabut [Grant pilihan pikeun]
ON
FROM

Anjeun bakal aya bewara yén sintaksis tina paréntah ieu sarupa jeung nu ti paréntah Grant. Hijina bédana éta kalayan Grant pilihan anu dieusian dina garis paréntah nyabut tinimbang di ahir paréntah. Salaku conto, hayu urang ngabayangkeun urang rék nyabut idin samemehna dibales Mary urang ngaleupaskeun rékaman tina database Konsumén. Urang kukituna nganggo paréntah di handap:

nyabut ngahapus
ON Konsumén
FROM Mary

Tur éta kabéh aya kana eta! Aya salah sahiji mékanisme tambahan dirojong ku Microsoft SQL Server yen sia mentioning-nu kufur paréntah. Ieu parentah bisa dipaké pikeun eksplisit mungkir a idin ka pamaké nu maranéhna bisa disebutkeun boga ngaliwatan kaanggotaan peran ayeuna atawa mangsa nu bakal datang. Di dieu Éta rumpaka:

Mungkir
ON
TO

conto

Balik ka conto urang saméméhna, hayu urang ngabayangkeun yen Maryam oge hiji anggota peran Gerentes nu oge kagungan aksés ka tabel Konsumén. Pernyataan nyabut saméméhna moal bakal jadi cukup pikeun mungkir aksés dirina kana tabél. Ieu bakal nyabut idin dibérékeun ka dirina ngaliwatan pernyataan Grant targeting Rekening pamaké dirina, tapi moal bakal mangaruhan idin massana ngaliwatan kaanggotaan dirina dina peran Gerentes. Sanajan kitu, lamun urang ngagunakeun pernyataan kufur eta bakal meungpeuk pusaka nya tina idin nu. Di dieu téh paréntah:

mungkir ngahapus
ON Konsumén
TO Mary

The mungkir paréntah dasarna nyiptakeun "idin négatip" dina kadali aksés database. Lamun kami engké mutuskeun masihan Mary idin pikeun miceun barisan tina tabel Konsumén, urang moal bisa ngan saukur nganggo paréntah Grant. paréntah nu bakal jadi langsung ditindes ku aya mungkir. Gantina, urang munggaran bakal nganggo paréntah nyabut ngaleupaskeun Éntri idin négatip saperti kieu:

nyabut ngahapus
ON Konsumén
FROM Mary

Anjeun bakal aya bewara nu paréntah ieu persis sarua jeung hiji dipaké pikeun miceun idin positif. Inget yén mungkir jeung Grant paréntah duanana karya dina sarupa fashion * mdash; maranéhna duanana jieun idin (positif atawa négatif) dina mékanisme database kontrol aksés. Paréntah nyabut ngaluarkeun sagala idin positif jeung negatif pikeun pamaké husus. Sakali paréntah ieu geus dikaluarkeun, Mary bakal tiasa dihapus barisan tina tabél lamun manehna mangrupakeun anggota peran nu mibanda idin éta. Alternatipna, paréntah Grant bisa dikaluarkeun nyadiakeun idin ngahapus langsung ka rekening nya.

Sapanjang kursus artikel ieu, anjeun geus diajar deal alus ngeunaan mekanisme kontrol aksés dirojong ku Standar pamundut Basa. bubuka ieu kudu nyadiakeun Anjeun sareng titik awal alus, tapi kuring ajak anjeun nuduhkeun dokuméntasi DBMS Anjeun pikeun neuleuman ukuran kaamanan nu ditingkatkeun dirojong ku sistem Anjeun. Anjeun nimu nu loba basis data ngarojong mékanisme kontrol aksés leuwih canggih, kayaning granting idin kana kolom husus.