هنگامی که یک دیتابیس ایجاد میشود برای دسترسی به آن باید یک یوزر دیتابیس نیز داشته باشیم. این مورد کنترل سطوح دسترسی دیتابیس را فراهم میکند تا بتوانیم محدودیت یا دسترسیهایی برای آن اعمال کنیم. دسترسیهای مهم و کاربردی یوزر دیتابیس در MySQL و MariaDB تعداد 16 مورد است که در این مطلب آنها را معرفی و جزئیات آنرا مطرح خواهیم کرد.
سطح دسترسی های دیتابیس
امکان اعطا یا محدودسازی دسترسیهای زیر برای دیتابیس وجود دارد:
- ALTER
- ALTER ROUTINE
- CREATE
- CREATE ROUTINE
- CREATE TEMPORARY TABLES
- CREATE VIEW
- DELETE
- DROP
- EVENT
- EXECUTE
- INDEX
- INSERT
- LOCK TABLES
- SELECT
- TRIGGER
- UPDATE
توجه داشته باشید زمانی که صحبت از دسترسیهای یوزر دیتابیس است برای دو مورد سطر و جدول کاربرد دارد. برخی از دسترسیها برای جداول و برخی نیز برای سطرها هستند که در توضیحات به آنها اشاره شده است.
دسترسی ALTER به معنی تغییردادن
ALTER دسترسی تغییر ساختار جدوال دیتابیس است. ALTER TABLE برای عملکرد به CREATE و INSERT نیاز دارد.
مثال 1 : برای تغییر نام جدول به ALTER و DROP نیاز است.
مثال 2 : برای ایجاد جدول نیز به CREATE و INSERT نیاز است.
دسترسی ALTER ROUTINE به معنی جریان تغییرات
این مورد برای ثبت وضعیت و جریان ALTER یا همان تغییرات ( رویه ها و توابع ذخیره شده ) کاربرد دارد.
دسترسی CREATE به معنی ایجاد
این مورد برای دسترسی ایجاد دیتابیس یا جدول کاربرد دارد.
دسترسی CREATE ROUTINE به معنی جریان ایجاد
این مورد برای ثبت وضعیت و جریان CREATE ( رویه ها و توابع ذخیره شده ) کاربرد دارد.
دسترسی CREATE TEMPORARY TABLES به معنی ایجاد جداول موقت
این مورد برای امکان ساخت جدوال موقت در دیتابیس کاربرد دارد.
دسترسی CREATE VIEW به معنی ایجاده مشاهده
این مورد برای دسترسی فرآینده مشاهده یا جایگزینی در دیتابیس کاربرد دارد.
دسترسی DELETE به منظور حذف سطر جدوال
این مورد برای حذف سطرها در جداول دیتابیس کاربرد دارد و بواسطه آن می توان Rows یک جدول را حذف نمود.
دسترسی DROP به منظور حذف جدوال
این مورد نیز برای حذف جداول بوده و می توان Table های دیتابیس را حذف نمود.
دسترسی EVENT به منظور تشریح وضعیت
تشریح وضعیت وظایف CREATE , ALTER, DROP و یا نمایش و تشریح رویدادها بواسطه EVENT انجام می شود.
دسترسی EXECUTE به منظور اجرای TRIGGERS
این مورد برای ثبت وضعیت و جریان اجرا ( رویه ها و توابع ذخیره شده ) کاربرد دارد.
دسترسی INDEX به منظور فهرست
این مورد برای ثبت وضعیت و جریان ایجاد یا حذف کاربرد دارد.
دسترسی INSERT به منظور وارد کردن
این مورد نیز برای دسترسی وارد کردن جداول در دیتابیس است.
دسترسی LOCK TABLES به منظور قفل جدوال
این دسترسی جداول را قفل کرده و مانع انتخاب و یا ثبت تغییرات در جدوال می شود.
دسترسی SELECT به منظور انتخاب
امکان انتخاب سطرها در جداول دیتابیس بواسطه دسترسی SELECT صورت می گیرد.
دسترسی TRIGGER به منظور کنترل و ذخیره سازی
از دسترسی TRIGGER به منظور کنترل و ذخیره سازی اطلاعات در روند اجرای وظایف دیگر بهره گرفته می شود.
دسترسی UPDATE به منظور بروزسانی سطرها
زمانی که اطلاعات و ساختار سطرها نیاز به بروزرسانی دارد این دسترسی نیاز خواهد بود.
در بسیاری از اسکریپتهای متداول کنترل سطوح دسترسی دیتابیس اهمیت ویژهای دارد. شما میتوانید بسته به شرایط مختلف دسترسی مختلفی برای یوزر دیتابیس تعیین کنید تا از اعطای دسترسیهای مازاد و اضافی خودداری شود. این به نوعی امنیت دیتابیس سایت را افزایش خواهد داد. به عنوان مثال در زیر به وضعیت نیازمندی دسترسی دیتابیس در دو اسکریپت wordpress و whmcs خواهیم پرداخت.
سطح دسترسی های مورد نیاز برای دیتابیس وردپرس
وردپرس در شرایط عادی با دسترسی های SELECT, INSERT, UPDATE , DELETE بخوبی کار می کند و نیازی به اعطای دسترسی های بیشتری به یوزر دیتابیس نیست. البته توجه داشته باشید در هنگام نصب یا بروزرسانی وردپرس یا قالب و افزونه ها بهتر است بصورت موقتی دسترسی را فول کرده و پس از اتمام کار آنرا به حالت قبل بازگردانید.
سطح دسترسی های مورد نیاز برای دیتابیس WHMCS
برای عملکرد عادی که نصب و بروزرسانی انجام نمیشود دسترسی های DELETE , INSERT , SELECT , UPDATE , LOCK TABLES کافی است و نیازی به دسترسی های دیگر نیست. در زمان نصب، بروزرسانی و کارهای عملیاتی نظیر فعالسازی ماژول و … دسترسی های ALTER , CREATE , DROP , INDEX نیز بصورت موقت مورد نیاز خواهد بود. پس از اتمام کار می توانید این دسترسی ها را برداشته و در حالت مورد نیاز قرار دهید. این موضوع موجب خواهد شد دیتابیس WHMCS امنیت بسیار بیشتری داشته باشد.
تامین امنیت با تنظیم سطح دسترسی مورد نیاز
همانطور که پیش تر اشاره شد هر سیستم مدیریت محتوا (CMS) به یکسری دسترسیها برای عملکرد عادی خود نیاز دارد. اعطای دسترسی بیش از حد نیاز ممکن است زمینه را برای هک شدن دیتابیس سایت فراهم کند. به همین جهت توصیه میشود در هنگام کار بر روی امنیت سایت به این موضوع نیز توجه داشته باشید تا بالاترین سطح امنیتی ممکن را برای وب سایت خود تامین کنید.