Usimbaji fiche katika MySQL: Mzunguko Mkuu wa Ufunguo

Kwa kutarajia kuanza kwa uandikishaji mpya kwa kozi hiyo "database" tunaendelea kuchapisha mfululizo wa makala kuhusu usimbaji fiche katika MySQL.

Katika makala iliyotangulia katika mfululizo huu, tulijadili jinsi usimbaji fiche mkuu unavyofanya kazi. Leo, kulingana na ujuzi uliopatikana hapo awali, hebu tuangalie mzunguko wa funguo kuu.

Kuzungusha kwa ufunguo mkuu kunahusisha kutoa ufunguo mkuu mpya na usimbaji fiche upya vitufe vya nafasi ya meza (ambazo zimehifadhiwa katika vichwa vya nafasi ya meza) kwa kutumia ufunguo huu mpya.

Wacha tukumbuke kile kichwa cha nafasi ya meza iliyosimbwa inaonekana kama:

Usimbaji fiche katika MySQL: Mzunguko Mkuu wa Ufunguo

Kutoka kwa makala iliyotangulia, tunajua kwamba seva husoma vichwa vya nafasi zote za meza zilizosimbwa kwa njia fiche wakati wa kuanza na kukumbuka KITAMBULISHO kikubwa zaidi cha KEY. Kwa mfano ikiwa tuna meza tatu na KEYID = 3 na jedwali moja na KEYID = 4, kisha upeo wa ID ya ufunguo utakuwa 4. Hebu tuite ID hii KEY - ID MAX KEY.

Jinsi mzunguko mkuu wa ufunguo unavyofanya kazi

1. Mtumiaji atekeleze ALTER INNODB MASTER KEY.

2. Seva inaomba uwekaji ufunguo kutoa ufunguo mkuu mpya na seva UUID na KEYID ni sawa na moja plus MAXKEYID. Kwa hivyo tunapata kitambulisho kikuu cha ufunguo sawa na INNODBKEY-UUID-(MAXKEYKitambulisho + 1). Baada ya kutengeneza ufunguo mkuu uliofaulu, MAX KEY ID inaongezwa kwa moja (yaani MAXKEYID=MAXKEYKitambulisho + 1).

3. Seva huchanganua nafasi zote za meza zilizosimbwa kwa njia fiche kwa ufunguo mkuu, na kwa kila nafasi ya meza:

  • husimba ufunguo wa nafasi ya meza kwa ufunguo mkuu mpya;

  • inasasisha kitambulisho cha ufunguo kwa MAX mpyaKEYKitambulisho;

  • ikiwa UUID ni tofauti na seva ya UUID, basi sasisha UUID ya seva.

Kama tunavyojua, Kitambulisho cha Ufunguo Mkuu kinachotumiwa kusimbua jedwali kina UUID na KITAmbulisho cha KEY kinachosomwa kutoka kwa kichwa cha nafasi ya meza. Tunachofanya sasa ni kusasisha maelezo haya katika kichwa cha usimbaji cha nafasi ya mezani ili seva ipokee ufunguo mkuu sahihi.

Ikiwa tuna nafasi za meza kutoka maeneo tofauti, kama vile hifadhi rudufu tofauti, basi zinaweza kutumia vitufe vikuu tofauti. Vifunguo vikuu vyote hivi vitahitajika kurejeshwa kutoka kwa hazina wakati seva inapoanzishwa. Hii inaweza kupunguza kasi ya uanzishaji wa seva, haswa ikiwa duka la vitufe vya upande wa seva linatumika. Kwa mzunguko mkuu wa ufunguo, tunasimba upya vitufe vya nafasi ya meza kwa ufunguo mkuu mmoja ambao ni sawa kwa nafasi zote za meza. Seva inapaswa sasa kupokea ufunguo mkuu mmoja tu wakati wa kuanza.

Hii, bila shaka, ni athari ya kupendeza tu. Kusudi kuu la kuzungusha funguo kuu ni kufanya seva yetu kuwa salama zaidi. Katika tukio ambalo ufunguo mkuu uliibiwa kwa namna fulani kutoka kwa vault (kwa mfano, kutoka kwa Vault Server), inawezekana kuzalisha ufunguo mpya mkuu na kusimba tena funguo za nafasi ya meza, na kubatilisha ufunguo ulioibiwa. Tuko salama...karibu.

Katika nakala iliyotangulia, nilizungumza juu ya jinsi ufunguo wa nafasi ya meza unapoibiwa, mtu wa tatu anaweza kuutumia kusimbua data. Isipokuwa kwamba kuna ufikiaji wa diski yetu. Ikiwa ufunguo mkuu umeibiwa na unaweza kufikia data iliyosimbwa, unaweza kutumia ufunguo mkuu ulioibiwa ili kusimbua ufunguo wa nafasi ya meza na kupata data iliyosimbwa. Kama unaweza kuona, mzunguko wa ufunguo wa bwana hausaidii katika kesi hii. Tunasimba upya ufunguo wa nafasi ya meza kwa ufunguo mkuu mpya, lakini ufunguo halisi unaotumiwa kusimba/kusimbua data hubaki vile vile. Kwa hivyo, "hacker" inaweza kuendelea kuitumia kusimbua data. Hapo awali nilidokeza hilo Seva ya Percona ya MySQL inaweza kutekeleza usimbaji upya wa kweli wa nafasi ya meza, sio usimbaji upya wa ufunguo rahisi wa nafasi ya meza. Kipengele hiki kinaitwa nyuzi za usimbaji fiche. Walakini, utendakazi huu bado ni wa majaribio kwa sasa.

Kuzungusha kwa ufunguo mkuu ni muhimu wakati ufunguo mkuu umeibiwa, lakini hakuna njia kwa mvamizi kuutumia na kusimbua vitufe vya nafasi ya meza.

Jisajili kwa somo la onyesho lisilolipishwa.

Soma zaidi:

Chanzo: mapenzi.com