پایگاه داده MySQL همه داده های وب سایت ها و برنامه ها را مدیریت می کند. هنگام مدیریت داده ها، امنیت از اهمیت فوق العاده ای برخوردار است، یتابراین استفاده از کاربر ریشه برای همه موارد، امنیت داده های ما را با خطر مواجه خواهد کرد. در این مطلب از وبسایت پایا یک ما خواهیم آموخت که چگونه در لینوکس ابونتو، یک پایگاه داده متفاوت ایجاد کنیم و به یک کاربر جدید مجوزهای پایگاه داده را بدهیم.
فهرست مطالب
پایگاه داده MySQL همه داده های وب سایت ها و برنامه ها را مدیریت می کند. هنگام مدیریت داده ها، امنیت از اهمیت فوق العاده ای برخوردار است. تا کنون ما از کاربر ریشه برای همه چیز استفاده کرده ایم.
اما در وبسایتهای واقعی، کاربر ریشه هرگز استفاده نمیشود زیرا به همه پایگاههای داده دسترسی دارد. این بدان معنی است که اگر کاربر ریشه در معرض خطر قرار گیرد، می تواند به همه پایگاه های داده آسیب برساند.
بنابراین برای اهداف امنیتی، باید یک کاربر جدید با رمز عبور در MySQL ایجاد کنیم.
ما یک پایگاه داده متفاوت ایجاد می کنیم و مجوزهای پایگاه داده را به کاربر جدید می دهیم.
ابتدا با root به پایگاه داده MySQL خود متصل می شویم.
mysql -u root -p
حالا بیایید سعی کنیم ببینیم به طور پیش فرض چند کاربر در mysql وجود دارد. دستور زیر تمام کاربران MySQL را فهرست می کند –
select user from mysql.user
ایجاد کاربر جدید MySQL
چگونه یک کاربرجدید MySQL با رمز عبور ایجاد کنیم؟
می بینید که تا الان 4 کاربر داریم. ما فقط با یکی به نام ریشه تعامل داشته ایم . بقیه کاربران توسط سیستم استفاده می شوند. اکنون یک کاربر جدید با رمز عبور ایجاد می کنیم. برای همین از دستور زیر استفاده می کنیم –
create user rishabh@localhost identified by 'pass123';
با این کار کاربری به نام rishabh در لوکال هاست MySQL ایجاد می شود و رمز عبور را روی pass123 تنظیم می کنیم. شما می توانید بر اساس نام و رمز عبور خود تغییراتی در دستور ایجاد کنید.
مشاهده می کنیم که کاربر جدیدی به نام rishabh ایجاد شده است. اکنون می توانیم به هر پایگاه داده ای دسترسی به این کاربر را بدهیم.
اجازه دهید ابتدا سعی کنیم با نام کاربری و رمز عبور rishabh وارد شوید.
ورود موفقیت آمیز بود و می بینیم که در حال حاضر، این کاربر فقط به یک پایگاه داده که توسط خود mysql ایجاد شده است دسترسی دارد. بنابراین عملا این کاربر به هیچ پایگاه داده ای دسترسی ندارد. ما اکنون به عنوان کاربر اصلی خود وارد می شویم و به این کاربر اجازه دسترسی به پایگاه داده ای را که قبلا ایجاد کرده بودیم، می دهیم. برای این کار می توانیم از دستور زیر استفاده کنیم.
grant all privileges on theitstuff.* to rishabh@localhost;
flush privileges;
ما در اینجا از دو دستور استفاده کرده ایم. اولین مورد تمام امتیازات را در تمام جداول پایگاه داده به نام theitstuff به کاربر به نام rishabh اعطا می کند . مورد بعدی تمام گزینه های امتیازات را پاک می کند و آنها را فعال می کند. اکنون باید واقعاً آزمایش کنیم که آیا عملیاتی که در نظر داشتیم جواب داده است یا خیر.
بررسی مجوزهای کاربران MySQL
چگونه مجوزهای کاربران MySQL را بررسی کنیم؟
ما اکنون به عنوان rishabh وارد میشویم و سعی میکنیم پایگاههای دادهای را ببینیم که به آنها دسترسی دارد.
آفرین! می بینید که کاربری که ما ایجاد کردیم به پایگاه داده ” theitstuff ” دسترسی دارد. اکنون می توانیم با خیال راحت از این کاربر در یک برنامه وب یا سایت استفاده کنیم. در حال حاضر حتی در برخی از بدترین سناریوها، این کاربر هک می شود، تنها بر یک پایگاه داده تأثیر می گذارد. این هیچ پایگاه داده دیگری را تحت تأثیر قرار نمی دهد زیرا این کاربر به آنها دسترسی ندارد.
ما معمولاً تمام امتیازات را در مثال بالا داده ایم . اما می توانید مجوزهای خاصی مانند انتخاب، درج، حذف به روز رسانی و غیره را به کاربر بدهید
لغو مجوزها
لغو مجوز به آسانی اعطای مجوز است. برای همین می توانید از کلمه کلیدی revoke استفاده کنید.
دستور زیر تمام امتیازات rishabh را در پایگاه داده به نام theitstuff لغو می کند.
لغو تمام امتیازات مربوط به theitstuff.* از rishabh@localhost;
مجدداً، می توانید با تایپ هر امتیازی که با کاما از هم جدا شده اند، امتیازات خاصی را لغو کنید.
نتیجه گیری
در این آموزش از پایایک، ما توانستیم یک کاربر جدید با رمز عبور در MySQL ایجاد کنیم و امنیت در پایگاه داده های MySQL را بیش از پیش، برقرار نماییم. ما به این کاربر، فقط مجوزهای لازم را دادیم تا اگر کاربر به خطر افتاد، تنها بر داده های محدود از پایگاه داده تأثیر بگذارد و نه تمام داده های مهم ما !
منبع: