یک ویژگی بارز MySQL امنیت خود آن است که بر حفاظت خارجی تکیه دارد. MySQL به عنوان یک سیستم مدیریت پایگاه داده مدرن، با امکانات کامل و کارآمد، ابزارهای خاص خود را برای مدیریت کاربران و دسترسی آنها به منابعی که کنترل می کند دارد.
اگر نام کاربری و رمز عبور صحیح را نمی دانید، دسترسی به پایگاه داده از طریق MySQL بسیار دشوار است.
در حالت میزبانی معمولی، این کافی است. موقعیت های پیش بینی نشده، حملات هکرها و سایر مشکلات مربوط به مدیریت سیستم خارجی و سرویس های امنیتی است. این مفهوم سنتی شده است و عملاً مورد بحث قرار نمی گیرد.
نصب سرور MySQL و کاربر root
در هر محیط عملیاتی که سیستم مدیریت پایگاه داده نصب شده باشد، همیشه حداقل یک کاربر دارد: root. MySQL را نصب کنید، یک کاربر با تمام حقوق ریشه ایجاد کنید - بدون این، با آن کار کنیدسرور امکان پذیر نیست امتیازات این کاربر برای: کافی است
- ایجاد و مدیریت کاربران جدید؛
- ایجاد و مدیریت پایگاه داده.
اساساً امکان وجود کاربران "بدون رمز عبور" در MySQL وجود دارد، اما این غیرقابل قبول است.
تمرین رایج:
- سرور روی رایانه شخصی نصب شده است، جایی که می توان میزبانی را نصب کرد (گزینه محلی)؛
- سرورروی میزبانی عمومی در اینترنت است.
در حالت اول می توان از خط فرمان با سرور کار کرد و از phpMyAdmin استفاده کرد، در حالت دوم فقط phpMyAdmin یا ابزاری مشابه، اما از طریق دسترسی از راه دور SSH می توان به خط فرمان دسترسی داشت.
ابزار مدیریت شخصی
احساس خویشاوندی با خانواده Unixoid و با گذشته سرورهای آپاچی مشخصه MySQL است: create user یک خط فرمان با نحو عجیب و غریب است. برای حرفهایهایی که با لینوکس و سیستمهای مشابه کار میکنند، این به همان اندازه که در چشم کاربران ویندوزی که هرگز وارد زندگی واقعی نشدهاند، آشنا است.
ایجاد کاربر با شروع خط فرمان سرور شروع می شود. در یک محیط ویندوز، این کار به صورت زیر انجام می شود.
ابتدا (1) باید خط فرمان را به عنوان مدیر اجرا کنید، سپس به پوشه ای که MySQL در آن قرار دارد بروید (2)، سپسخود سرور را راه اندازی کنید (3):
mysql -u… -p
در اینجا "-u…" و "-p" کلیدهایی هستند که به نام "…"=ریشه (یا نام دیگر) و رمز عبور آن اشاره می کنند. در اصل، یک کاربر ممکن است root نباشد، اما کاربری دارای حقوق "ریشه" (اداری) باشد.
مهم: سرور در واقع همیشه در حال اجرا است، در اینجا mysql -u… -p فرمان دسترسی به سرور است، نه شروع آن.
در یک محیط لینوکس و سیستم های مشابه، چنین دستوری یک عمل "بومی" است و معمولاً با راه اندازی mysqld در مکان مناسب (در مسیر درست) تعیین می شود. مدیر معمولاً در اینجا یک نام متفاوت وجود دارد: نه mysql، بلکه mysqld. همچنین در اینجا، این عمل همیشه برای همه کاربران (سیستم عامل، نه سرور MySQL) در دسترس نیست. برخلاف ویندوز، در لینوکسوئیدها، نظم و امنیت یک نیاز طبیعی و غیرقابل مذاکره است که همیشه به شیوهای متمدنانه با آن برخورد میشود.
در هر صورت، هنگامی که mysql شروع به کار کرد، این را با یک اعلان اعلام می کند (4):
mysql>
و کار با کاربران و پایگاه داده ها امکان پذیر خواهد بود.
نکته. هنگام نصب در یک محیط ویندوز، همه چیز: 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 [نوع امتیاز] در [نام پایگاه داده]. [نام جدول] به '[user]'@'localhost';
امتیازات زیر مجاز است:
- همه امتیازات - همه حقوق.
- CREATE - حق ایجاد جداول/پایگاه های داده جدید.
- DROP - حق حذف جداول/پایگاههای داده.
- DELETE - حق حذف اطلاعات در جداول.
- INSERT - حق نوشتن اطلاعات در جداول.
- SELECT - حق خواندن اطلاعات از جداول.
- UPDATE - حق به روز رسانی اطلاعات در جداول.
- GRANT OPTION - حق کار با امتیازات سایر کاربران.
از نقطه نظر عملی، در MySQL "ایجاد کاربر" به سه گزینه برای حقوق دلالت دارد:
- همه حقوق همه پایگاههای داده و همه کاربران؛
- خواندن و نوشتن؛
- فقط خواندنی.
گزینه های دیگر برای اعطای حقوق به ندرت مورد نیاز است. در محیط لینوکس، زمینه های بسیار بیشتری برای آزادی (و ضرورت) "قانونی" وجود دارد، اما فرصت های بسیار بیشتری نسبت به ویندوز وجود دارد.
عملیات معکوس MySQL "ایجاد کاربر" حذف است.
رها کردن کاربر 'Petrov'@'localhost';
پس از اجرای این دستور، پتروف دیگر کاربر نخواهد بود و امتیازات او از بین می رود. برای تغییر امتیازات، از دستور استفاده کنید:
Revoke [امتیاز] در [DB]. [جدول] به '[user]'@'localhost';
عمل معمول در MySQL ایجاد یک کاربر یا حذف آن است، اما تغییر امتیازها نیز یک عملیات معتبر است (به ندرت درخواست می شود).
استفاده از phpMyAdmin
پیاده سازی های زیادی از این ابزار فوق العاده وجود دارد. بسته به نسخه Apache، PHP و MySQL مورد استفاده، اغلب زمان زیادی طول می کشد تا نسخه مناسب این محصول را پیدا کنید، اما هنگامی که phpMyAdmin با موفقیت نصب شد، کاربر دارای بسیاری از ویژگی های راحت و راحتی است.رابط.
با استفاده از phpMyAdmin، می توانید به MySQL بگویید که یک کاربر برای هر میزبانی ایجاد کند و کاربران موجود را به روش های تقریباً جراحی مدیریت کند.
phpMyAdmin تنها ابزار با رابط کاربری راحت، بصری و غنی از ویژگی نیست، اما محبوب ترین ابزار برای مدیریت سرورهای MySQL است.
درباره خط فرمان و امنیت
البته استفاده از خط فرمان MySQL تمرینی غیرجذاب است، اما باید در نظر داشت که در برخی موارد فقط خط فرمان سرور می تواند پایگاه داده یا کاربر را ذخیره کند، واردات یا صادرات اطلاعات را تضمین کند.
نسخههای نرمافزار بهقدری سریع در حال پیشرفت هستند که توسعهدهندگان به سادگی وقت ندارند ویژگیهای مثلاً PHP و MySQL، MySQL و phpMyAdmin را ترکیب کنند. اگر اتفاقی بیفتد، خط فرمان همیشه روز را نجات خواهد داد.
همچنین هرگز نباید فراموش کرد: مدیریت MySQL فقط دسترسی به پایگاه داده و از طریق عملکرد آن است. فایل های پایگاه داده برای دسترسی به خارج از MySQL باز هستند. ایمن سازی خارجی MySQL و منابعی که آن را کنترل می کند یک نیاز واقعی و مهم است.