MySQL-ի բնորոշ հատկանիշը սեփական անվտանգությունն է՝ հենվելով արտաքին պաշտպանության վրա: Որպես տվյալների բազայի կառավարման ժամանակակից, լիարժեք և արդյունավետ համակարգ՝ MySQL-ն ունի օգտատերերի կառավարման և իր կողմից վերահսկվող ռեսուրսների հասանելիության իր գործիքները:
Եթե չգիտեք ճիշտ օգտվողի անունը և գաղտնաբառը, MySQL-ի միջոցով տվյալների բազա մուտք գործելը շատ դժվար է:
Նորմալ հոսթինգի ռեժիմում սա բավական է: Չնախատեսված իրավիճակները, հաքերային հարձակումները և այլ անախորժությունները արտաքին համակարգի կառավարման և անվտանգության ծառայությունների խնդիրն է: Այս հայեցակարգը դարձել է ավանդական և գործնականում չի քննարկվում։
Տեղադրեք MySQL սերվերը և օգտվողի արմատը
Որ գործառնական միջավայրում էլ տեղադրված լինի տվյալների բազայի կառավարման համակարգը, այն միշտ ունի առնվազն մեկ օգտվող՝ root: Տեղադրեք MySQL-ը, ստեղծեք օգտատեր բոլոր արմատական իրավունքներով, առանց դրա՝ աշխատեքսերվերը հնարավոր չէ: Այս օգտվողի արտոնությունները բավարար են՝
- ստեղծել և կառավարել նոր օգտվողներ;
- ստեղծել և կառավարել տվյալների շտեմարաններ:
Սկզբունքորեն հնարավոր է «առանց գաղտնաբառ» օգտատերերի գոյությունը MySQL-ում, սակայն դա անընդունելի է:
Ընդհանուր պրակտիկա.
- սերվեր տեղադրված է սեփական համակարգչում, որտեղ կարելի է տեղադրել հոսթինգ (տեղական տարբերակ);
- սերվերը հանրային հոսթինգում է ինտերնետում:
Առաջին դեպքում հնարավոր է աշխատել սերվերի հետ հրամանի տողից և օգտագործել phpMyAdmin, երկրորդ դեպքում՝ միայն phpMyAdmin կամ նմանատիպ գործիք, սակայն հրամանի տող կարելի է մուտք գործել SSH հեռավոր մուտքի միջոցով։
Սեփական կառավարման գործիքներ
Unixoid ընտանիքի և Apache սերվերների անցյալի հետ հարազատության զգացումը MySQL-ի բնորոշ հատկանիշն է. user user-ը տարօրինակ շարահյուսությամբ հրամանի տող է: Linux-ի և նմանատիպ համակարգերի հետ աշխատող մասնագետների համար սա նույնքան ծանոթ է, որքան վայրի տեսք Windows-ի օգտատերերի աչքերում, ովքեր երբեք «իրական կյանք չեն մտել»:
Օգտատիրոջ ստեղծումը սկսվում է սերվերի հրամանի տողից: Windows միջավայրում դա արվում է հետևյալ կերպ.
Նախ (1) դուք պետք է գործարկեք հրամանի տողը որպես ադմինիստրատոր, այնուհետև գնացեք այն թղթապանակը, որտեղ գտնվում է MySQL (2), ապասկսել սերվերն ինքնին (3):
mysql -u… -p
այստեղ «-u…» և «-p» բանալիներ են, որոնք մատնանշում են «…» անունը (կամ այլ անուն) և դրա գաղտնաբառը: Սկզբունքորեն, օգտվողը կարող է լինել ոչ թե արմատ, այլ «արմատային» (ադմինիստրատիվ) իրավունքներ։
Կարևոր է. սերվերն իրականում միշտ աշխատում է, այստեղ mysql -u… -p-ը սերվեր մուտք գործելու, այլ ոչ թե այն սկսելու հրամանն է:
Լինուքսի միջավայրում և նմանատիպ համակարգերում նման հրամանը «հայրենի» գործողություն է և, որպես կանոն, որոշվում է պարզապես ճիշտ տեղում (ճիշտ ճանապարհին) գործարկելով mysqld-ը, սա պետք է ստուգվի ադմինիստրատորը։ Այստեղ սովորաբար այլ անուն կա՝ ոչ թե mysql, այլ mysqld: Նաև այստեղ, այս գործողությունը միշտ չէ, որ հասանելի է բոլոր օգտատերերին (օպերացիոն համակարգի, ոչ MySQL սերվերի): Ի տարբերություն Windows-ի, Linuxoid-ներում կարգը և անվտանգությունը բնական և անսակարկելի պահանջ են, որոնք միշտ քաղաքակիրթ կերպով են վերաբերվում:
Ամեն դեպքում, երբ mysql-ը գործարկվի, այն կհայտարարի այդ մասին հուշումով (4):
mysql>
և հնարավոր կլինի աշխատել և՛ օգտատերերի, և՛ տվյալների բազաների հետ:
Նշում. Windows միջավայրում տեղադրելիս ամեն ինչ՝ Apache, MySQL, PHP, phpMyAdmin, կարող է սահմանվել լռելյայն ուղիների, սակայն խորհուրդ է տրվում օգտագործել ավելի կոմպակտ և մոտ տեղակայումներ այս կարևոր գործիքների համար՝:
- c:\SCiA\Apache;
- c:\SCiA\PHP;
- c:\SCiA\MySQL;
- …
- c:\SCiB\localhost\www\phpMyAdmin;
- c:\SCiB\site1\www;
- c:\SCiB\site2\www;
- …
- c:\SCiB\siteN\www\.
Այս տրամաբանությունը ոչ միայն կհեշտացնի կառավարումը, այլև կընդլայնի ծրագրավորողի կարողությունը՝ շարժվել արտադրանքի տարբերակների միջև և կառավարել դրանց ֆունկցիոնալությունը:
Աշխատում է MySQL հրամանի տողում
Հենց որ սերվերը պատասխանի և տրամադրի իր հրամանի տողը, օգտատերերին կարող են ստեղծվել և թույլտվություններ տալ:
Այս օրինակում create user հրամանը ստեղծեց Petrov օգտվողին 123DFG գաղտնաբառով: Եթե հրաման մուտքագրելիս սխալ է տեղի ունենում, սերվերն առաջարկում է ուղղել այն, բայց ավելի լավ է երբեք չսխալվել հրամանի տողում աշխատելիս:
Հետևյալ հրամանը տալիս է բոլոր արտոնությունները, տալիս է բոլոր իրավունքները ամեն ինչի համար: flush հրամանը կարող է բաց թողնել, բայց այն «թափում» է հրամանների բուֆերը, այսինքն՝ ուղղում է դրանց կատարումը:
MySQL. ստեղծեք օգտվող և տրամադրեք իրավունքներ տվյալների բազայի համար
Օրինակում օգտագործված հրաման՝
ՏՐԱՄԱԴՐԵԼ ԲՈԼՈՐ ԱՐՏՈՆՈՒԹՅՈՒՆՆԵՐԸ.-ին 'Petrov'@'localhost';
իրականում Petrov օգտատիրոջը տալիս է մուտք դեպի բոլոր տվյալների բազաները (առաջին աստղանիշ) դեպի բոլոր աղյուսակները (երկրորդ աստղանիշ):
Որպես ընդհանուր MySQL կանոն, օգտվող ստեղծելը հետևյալն է.
GRANT [արտոնությունների տեսակ] ON [տվյալների բազայի անունը]։[աղյուսակի անունը] «[user]'@'localhost';
Թույլատրվում են հետևյալ արտոնությունները՝
- ԲՈԼՈՐ ԱՐՏՈՆՈՒԹՅՈՒՆՆԵՐԸ - բոլոր իրավունքները:
- CREATE - նոր աղյուսակներ/տվյալների բազաներ ստեղծելու իրավունք:
- DROP - աղյուսակներ/տվյալների բազաներ թողնելու իրավունք:
- DELETE - աղյուսակներում տեղեկատվությունը ջնջելու իրավունք:
- INSERT - աղյուսակներում տեղեկատվություն գրելու իրավունք:
- SELECT - աղյուսակներից տեղեկատվություն կարդալու իրավունք:
- UPDATE - աղյուսակներում տեղեկատվությունը թարմացնելու իրավունք:
- GRANT OPTION - այլ օգտվողների արտոնություններով աշխատելու իրավունք:
Գործնական տեսանկյունից MySQL-ում «ստեղծել օգտվող» ենթադրում է իրավունքների երեք տարբերակ.
- բոլոր իրավունքները բոլոր տվյալների բազաների և բոլոր օգտագործողների նկատմամբ;
- կարդալ և գրել;
- միայն կարդալու.
Իրավունքների տրամադրման այլ տարբերակներ հազվադեպ են պահանջվում: Linux միջավայրում շատ ավելի շատ հիմքեր կան «օրինական» ազատության (և անհրաժեշտության) համար, բայց այնտեղ շատ ավելի շատ հնարավորություններ կան, քան Windows-ում։
MySQL «ստեղծել օգտվողի» հակառակ գործողությունը անկում է:
թողնել օգտվողին 'Petrov'@'localhost';
Այս հրամանը կատարելուց հետո Պետրովն այլևս օգտատեր չի լինի, և նրա արտոնությունները կկորցնեն։ Արտոնությունները փոխելու համար օգտագործեք հրամանը՝
REVOKE [արտոնություն] ON [DB]-ում։[Աղյուսակ] «[user]'@'localhost';
Սովորական գործողությունը MySQL-ում օգտատեր ստեղծելն է կամ ջնջելը, սակայն արտոնությունները փոխելը նույնպես վավեր գործողություն է (հազվադեպ է պահանջվում):
Օգտագործելով phpMyAdmin
Այս հրաշալի գործիքի բազմաթիվ ներդրումներ կան: Կախված օգտագործվող Apache-ի, PHP-ի և MySQL-ի տարբերակից, հաճախ երկար ժամանակ է պահանջվում գտնել այս արտադրանքի ճիշտ տարբերակը, բայց երբ phpMyAdmin-ը հաջողությամբ տեղադրվի, օգտվողն ունի շատ հարմար հնարավորություններ և հարմարավետություն:ինտերֆեյս։
Օգտագործելով phpMyAdmin, դուք կարող եք ասել MySQL-ին, որ օգտատեր ստեղծի ցանկացած հոսթի համար և կառավարի առկա օգտվողներին գրեթե վիրահատական եղանակներով:
phpMyAdmin-ը հարմարավետ, ինտուիտիվ և հարուստ ինտերֆեյսով միակ գործիքը չէ, սակայն այն MySQL սերվերների կառավարման ամենատարածված գործիքն է:
Հրամանատարի և անվտանգության մասին
Իհարկե, MySQL հրամանի տող օգտագործելը ոչ գրավիչ վարժություն է, սակայն պետք է նկատի ունենալ, որ որոշ դեպքերում միայն սերվերի հրամանի տողը կարող է պահպանել տվյալների բազան կամ օգտագործողին, ապահովել տեղեկատվության ներմուծումը կամ արտահանումը:
Ծրագրային տարբերակներն այնքան արագ են զարգանում, որ մշակողները պարզապես ժամանակ չունեն համատեղելու, օրինակ, PHP-ի և MySQL-ի, MySQL-ի և phpMyAdmin-ի հնարավորությունները: Եթե ինչ-որ բան պատահի, հրամանի տողը միշտ կփրկի օրը:
Պետք չէ նաև մոռանալ. MySQL-ի կառավարումը միայն իր տվյալների բազաներ մուտք գործելու և դրա ֆունկցիոնալության միջոցով է: Տվյալների բազայի ֆայլերը բաց են MySQL-ից դուրս մուտք գործելու համար: MySQL-ի և նրա կողմից վերահսկվող ռեսուրսների արտաքին անվտանգությունն իրական և կարևոր կարիք է: