Рамзгузорӣ дар MySQL: Ротатсияи асосии калид

Дар интизори оғози қабули нав барои курс "Махзани маълумот" мо нашри як қатор мақолаҳоро дар бораи рамзгузорӣ дар MySQL идома медиҳем.

Дар мақолаи қаблии ин силсила мо муҳокима кардем рамзгузории калиди асосӣ чӣ гуна кор мекунад. Имрӯз, дар асоси донишҳои қаблан гирифташуда, биёед ба гардиши калидҳои асосӣ назар кунем.

Гардиши калидҳои асосӣ тавлиди калиди нави асосӣ ва аз нав рамзкунонии калидҳои фазои ҷадвалро (ки дар сарлавҳаҳои фазои ҷадвал нигоҳ дошта мешаванд) бо ин калиди нав дар бар мегирад.

Биёед ба хотир орем, ки сарлавҳаи фазои мизҳои рамзгузорӣ чӣ гуна аст:

Рамзгузорӣ дар MySQL: Ротатсияи асосии калид

Аз мақолаи қаблӣ мо медонем, ки сервер сарлавҳаҳои ҳама фазои мизҳои рамзгузоришударо ҳангоми оғозёбӣ мехонад ва бузургтарин ID-и KEY-ро дар хотир дорад. Масалан, агар мо се ҷадвал бо KEY дошта бошемID = 3 ва як ҷадвал бо KEYID = 4, пас ID-и максималии калид 4 хоҳад буд. Биёед ин ID-и калидӣ - MAX ID-и калидро номем.

Чӣ тавр гардиши калиди асосӣ кор мекунад

1. Истифодабаранда ALTER INNODB MASTER KEY-ро иҷро мекунад.

2. Сервер аз калид талаб мекунад, ки калиди нави асосӣ бо сервер UUID ва KEY тавлид кунадID баробар ба як плюс MAXKEYID. Ҳамин тавр, мо id калиди асосӣ ба INNODB баробар мегиремКАЛИД-UUID-(MAXKEYID + 1). Пас аз тавлиди бомуваффақияти калиди асосӣ, ID MAX KEY ба як зиёд мешавад (яъне MAX.KEYID = МАКСKEYID + 1).

3. Сервер ҳамаи фазои мизҳои бо калиди асосӣ рамзгузоришударо скан мекунад ва барои ҳар як фазои ҷадвал:

  • калиди фазои ҷадвалро бо калиди нави асосӣ рамзгузорӣ мекунад;

  • ID калидро ба MAX-и нав нав мекунадKEYШиноснома

  • агар UUID аз сервер UUID фарқ кунад, пас сервери UUID-ро навсозӣ кунед.

Тавре ки мо медонем, ID Master Key, ки барои рамзкушоӣ кардани ҷадвал истифода мешавад, аз UUID ва ID KEY, ки аз сарлавҳаи фазои ҷадвал хонда мешавад, иборат аст. Он чизе ки мо ҳоло анҷом медиҳем, ин навсозӣ кардани ин маълумот дар сарлавҳаи рамзгузории фазои ҷадвал мебошад, то сервер калиди дурусти асосиро гирад.

Агар мо фазои мизҳо аз маконҳои гуногун дошта бошем, ба монанди нусхаҳои эҳтиётии гуногун, онҳо метавонанд калидҳои асосии гуногунро истифода баранд. Вақте ки сервер оғоз мешавад, ҳамаи ин калидҳои асосӣ бояд аз анбор гирифта шаванд. Ин метавонад оғози серверро суст кунад, хусусан агар мағозаи калидҳои сервер истифода шавад. Бо гардиши калиди асосӣ, мо калидҳои фазои ҷадвалро бо як калиди асосӣ, ки барои ҳама фазои ҷадвалҳо яксон аст, дубора рамзгузорӣ мекунем. Ҳоло сервер бояд танҳо як калиди асосӣ ҳангоми оғозёбӣ қабул кунад.

Ин, албатта, танҳо як таъсири ҷониби гуворо аст. Мақсади асосии гардиши калиди асосӣ ин бехатарии сервери мо мебошад. Дар ҳолате, ки калиди асосӣ аз анбор (масалан, аз сервери Vault) дуздида шуда бошад, мумкин аст, ки калиди нави асосӣ тавлид ва калидҳои фазои ҷадвалро дубора рамзгузорӣ карда, калиди дуздидашударо беэътибор гардонад. Мо бехатарем... қариб.

Дар мақолаи қаблӣ, ман дар бораи он ки чӣ тавр вақте ки калиди фазои ҷадвал дуздида мешавад, шахси сеюм метавонад онро барои рамзкушоӣ кардани маълумот истифода барад. Ба шарте ки ба диски мо дастрасӣ дошта бошад. Агар калиди асосӣ дуздида шуда бошад ва шумо ба маълумоти рамзшуда дастрасӣ дошта бошед, шумо метавонед калиди асосии дуздидашударо барои рамзкушоӣ кардани калиди фазои ҷадвал ва гирифтани маълумоти рамзкушошуда истифода баред. Тавре ки шумо мебинед, гардиши калиди асосӣ дар ин ҳолат кӯмак намекунад. Мо калиди фазои ҷадвалро бо калиди нави асосӣ рамзгузорӣ мекунем, аммо калиди воқеие, ки барои рамзгузорӣ/рамзшифркунии додаҳо истифода мешавад, бетағйир мемонад. Аз ин рӯ, "хакер" метавонад истифодаи онро барои рамзкушоӣ кардани маълумот идома диҳад. Қаблан ман ба ин ишора карда будам Сервери Percona барои MySQL метавонад рамзгузории воқеии фазои ҷадвалро иҷро кунад, на танҳо рамзгузории оддии калиди фазои ҷадвал. Ин хусусиятро риштаҳои рамзгузорӣ меноманд. Бо вуҷуди ин, ин функсия дар айни замон озмоиш аст.

Гардиши калиди асосӣ ҳангоми дуздида шудани калиди асосӣ муфид аст, аммо барои ҳамлакунанда ҳеҷ роҳе барои истифода аз он ва рамзкушоӣ кардани калидҳои фазои ҷадвал вуҷуд надорад.

Барои дарси намоишии ройгон обуна шавед.

Бештар:

Манбаъ: will.com