اگر با پایگاه داده MySQL کار می کنید ، در حال حاضر از چالش هایی که در حفظ امنیت پایگاه داده خود با آن روبرو هستید آگاه هستید. از تلاش های هک پایگاه داده با استفاده از تزریق SQL گرفته تا حملات وحشیانه ، حفظ امنیت داده های شما دشوار است ، به خصوص اگر از راه دور با پایگاه داده کار می کنید.
راه هایی برای پیکربندی سرور SQL وجود دارد که اجازه اتصال از راه دور را می دهد. ، اما باید مراقب باشید ، زیرا اجازه دادن به اتصالات از راه دور در سرور MySQL می تواند پایگاه داده شما را به یک هدف آسان برای هکرها تبدیل کند. اگر می خواهید اتصالات ایمن و از راه دور به پایگاه داده MySQL اجازه دهید ، آنچه باید بدانید در اینجا آمده است.
قبل از شما شروع
قبل از ایجاد هرگونه تغییر در پایگاه داده MySQL ، مهم است که از پایگاه داده خود پشتیبان گیری کنید، به ویژه اگر در یک سرور تولید (سرور) کار می کنید. در حال استفاده فعال) هرگونه تغییری که در پایگاه داده خود یا سروری که میزبانی آن را انجام می دهد ، ممکن است در صورت بروز مشکل منجر به از دست دادن داده های جدی شود.
همچنین ممکن است متوجه شوید که تغییرات در اتصالات سرور شما ممکن است مانع دسترسی شما به آن بعدا شود. اگر این اتفاق بیفتد ، ممکن است لازم باشد برای پشتیبانی بیشتر با سرور سرور مشورت کنید. یک ایده خوب این است که هر تغییری را در یک سرور MySQL که محلی اجرا می شود آزمایش کنید تا بررسی کنید آیا تغییرات شما قبل از امتحان از راه دور کار می کند یا خیر. برای اتصال و ایجاد تغییرات به یک راه مطمئن نیاز خواهید داشت. SSH (پوسته امن)اغلب بهترین راه برای این کار است ، زیرا به شما امکان می دهد به سرور راه دور خود متصل شوید. همچنین می توانید از SSH برای اتصال به سرورهای شبکه محلی خود استفاده کنید ، مانند میزبانی شده بر روی رزبری پای.
این راهنما شما را در مراحل زیر راهنمایی می کند: پیکربندی MySQL برای امکان اتصال از راه دور ، اما باید اطمینان حاصل کنید که ابتدا مستقیم یا از راه دور به سرور میزبان سرور MySQL خود دسترسی دارید.
فرض کنید از راه دور از طریق SSH به سرور خود دسترسی ندارید (برای مثال). در این صورت ، شما نمی توانید پایگاه داده MySQL خود را طوری پیکربندی کنید که مستقیماً به اتصالات از راه دور اجازه دهد مگر اینکه حساب root mySQL شما قبلاً به اتصالات از راه دور اجازه دهد. بنابراین ، ابتدا باید این اتصال را برقرار کنید تا بتوانید ادامه دهید.
ویرایش فایل پیکربندی MySQL
اولین مرحله در پیکربندی MySQL برای اجازه از راه دور اتصالات برای ویرایش فایل پیکربندی MySQL است. در این مرحله ، این راهنما فرض می کند که قبلاً به سرور ، رایانه شخصی یا Mac متصل شده اید که پایگاه داده mySQL خود را از راه دور میزبانی می کند و دسترسی به کنسول دارید.
متناوباً ، می توانید یک سرور MySQL محلی را با استفاده از ترمینال باز در Mac یا Linux یا ویرایشگر متن در Windows پیکربندی کنید.
مکانهایی که در بالا به آنها اشاره شد مکانهای پیش فرض هستند برای فایل های پیکربندی MySQL اگر این دستورات کار نمی کنند ، باید فایل های مربوطه را جستجو کنید (my.cnf، mysqld.cnf، یا my.ini) به صورت دستی مسیر فایل مربوطه را بیابید.
تنظیم محدوده IP آدرس ایمن
- بعد ، کاربران لینوکس و مک می توانند MySQL را با تایپ mysql.server stop && mysql.server startیا restart mysql.serراه اندازی مجدد کنند. ممکن است لازم باشد فرمان با استفاده از sudo را بالا ببرید (مثلاً sudo mysql.server restart) و از مسیر مناسب به فایل mysql.server استفاده کنید (مثلاً /usr /local/bin/mysql.server).
اگر از نام سرویس صحیح در Windows مطمئن نیستید ، net startرا برای یافتن آن تایپ کنید. اگر نمی توانید پیکربندی خود را بارگیری کنید ، سرور خود را مجدداً راه اندازی کنید و به جای آن MySQL را به صورت دستی بارگیری کنید.
پیکربندی فایروال
در این مرحله ، پایگاه داده MySQL شما باید به اتصالات از راه دور دستگاه هایی با استفاده از آدرس IP ای که به عنوان مقدار bind-addressدر فایل پیکربندی MySQL خود تعیین کرده اید (یا اگر این مقدار را روی 0.0.0.0 تنظیم کنید از همه دستگاه ها اجازه می دهد)بجای آن). با این حال ، اتصالات همچنان توسط دستگاه یا دیوار آتش شبکهشما مسدود می شوند.
اکثر سرورها و رایانه های شخصی از فایروال برای مسدود کردن اتصالات استفاده می کنند مگر اینکه دسترسی به پورت خاصی داده شود. مراحل پیکربندی این بسته به اینکه از MySQL در Windows یا Linux استفاده می کنید متفاوت خواهد بود. فایروال های Mac به طور پیش فرض غیرفعال هستند ، بنابراین نیازی به انجام مراحل اضافی در اینجا ندارید.
پیکربندی فایروال های Linux
بسیاری از سرورهای لینوکس از iptablesبه عنوان ابزار پیش فرض دیوار آتش. با دنبال کردن مراحل زیر می توانید آن را پیکربندی کنید.
اگر iptables ابزار پیش فرض فایروال برای توزیع لینوکس شما نیست ، برای اطلاعات بیشتر باید با دفترچه راهنمای کاربر توزیع خود مشورت کنید. اگر بسته های خاصی (مانند netfilter-persistent) در دسترس نیستند ، از ابزار مخزن نرم افزار توزیع خود برای نصب آن استفاده کنید (مثلاً sudo apt install netfilter-persistent).
پیکربندی فایروال های Windows
اگر از رایانه یا سرور Windows برای میزبانی پایگاه داده خود استفاده می کنید ، می توانید با استفاده از این مراحل فایروال خود را پیکربندی کنید:
اگر در اتصال مشکل دارید ، این مراحل بالا را تکرار کنید ، اطمینان حاصل کنید که یک قانون خروجیجدید در تنظیمات فایروال خود با استفاده از همان جزئیات (پورت 3306 و غیره) ایجاد کنید. همچنین ممکن است لازم باشد روتر شبکه محلی خود را به پورت های مسدود شده لازم را باز کنید پیکربندی کنید تا بتوانید اتصالات ورودی و خروجی به پایگاه داده خود را مجاز کنید.
اتصال به سرور از راه دور با استفاده از MySQL
پس از پیکربندی پایگاه داده MySQL خود برای امکان اتصال از راه دور ، باید در واقع یک اتصال به آن برقرار کنید. می توانید این کار را با استفاده از فرمان mysql(mysql.exeدر Windows) از ترمینال یا پنجره PowerShell انجام دهید.
اگر از Windows استفاده می کنید ، قبل از شروع باید از MySQL به صورت محلی نصب شده است اطمینان حاصل کنید. کاربران Mac می توانند MySQL با استفاده از homebrew را از پایانه (brew install mysql) نصب کنند ، در حالی که کاربران لینوکس می توانند از مخزن برنامه محلی خود استفاده کنند (به عنوان مثال sudo apt install mysql) برای نصب بسته های لازم.
اتصال به MySQL در لینوکس یا مک
اتصال به MySQL در Windows
اگر این کار نمی کند ، با استفاده از این مراحل و با استفاده از استدلال -h localhostبه سرور یا رایانه ای که سرور MySQL خود را میزبانی می کند با SSH (یا مستقیماً به آن دسترسی داشته باشید) متصل شوید. سپس می توانید با دنبال کردن مراحل زیر یک حساب کاربری مناسب ایجاد کنید.
اجازه دسترسی کاربر از راه دور به پایگاه داده MySQL
در این مرحله ، باید قادر به اتصال از راه دور به سرور MySQL خود با استفاده از حساب کاربری ریشه سرور خود یا حساب کاربری دیگر با امتیازات بالا. از آنجا که این سطح دسترسی ناامن است ، ممکن است ترجیح دهید یک حساب محدودتر برای دسترسی به پایگاه داده MySQL خود ایجاد کنید.
این حساب دسترسی محدودی به سرور MySQL شما خواهد داشت و اجازه می دهد فقط با پایگاه های داده انتخاب شده تعامل داشته باشد. نمی تواند تغییرات جدی تری مانند دسترسی به دیگر داده های پایگاه داده ، ایجاد حساب های کاربری جدید و غیره ایجاد کند.
شما باید توانایی ورود به سرور MySQL خود از راه دور را داشته باشید. اگر نمی توانید از راه دور از حساب ریشه خود استفاده کنید ، باید با استفاده از فرمان mysqlاز طریق اتصال SSH از راه دور یا دسترسی مستقیم به رایانه شخصی یا سرور میزبان سرور ، به پوسته سرور خود دسترسی پیدا کنید.
با دسترسی مجاز ، از مراحل موجود در قسمت بالا برای اتصال از راه دور به سرور خود با استفاده از حساب جدید خود استفاده کنید (مثلاً mysql -u نام کاربری -h XXXX: XXXX -p).
امنیت داده های پایگاه داده
این که آیا با MySQL یا نوع دیگری از SQL کار می کنید پایگاه داده ، حفظ امنیت اتصالات برای حفظ امنیت داده ها بسیار مهم است. یک راه خوب برای انجام این کار این است که به جای اتکا به گذرواژه های قدیمی (و به راحتی قابل حدس زدن) به سرور خود ایجاد کلیدهای SSH برای دسترسی از راه دور وارد شوید.
اگر نگران از دست دادن اطلاعات هستید ، می توانید به راحتی از پایگاه داده خود نسخه پشتیبان تهیه کنید آنلاین باشید. اکثر پایگاه های داده با استفاده از سرورهای لینوکس اجرا می شوند - شما می توانید پشتیبان گیری از فایل لینوکس را به راحتی خودکار کنید. اگر از MySQL در ویندوز استفاده می کنید ، می توانید یک سیستم پشتیبان گیری خودکار برای ویندوز مشابه را تنظیم کنید و به شما امکان می دهد داده های خود را در مواقع ضروری بازیابی کنید.