میزبانی وب

کنترل سطح دسترسی های دیتابیس

می دانیم زمانی که یک دیتابیس ایجاد می کنیم برای دسترسی به آن باید یک یوزر دیتابیس نیز داشته باشیم تا بتوانیم دیتابیس را کنترل کرده و محدودیت یا دسترسی هایی بر آن داشته باشیم. دسترسی های مهم و کاربردی یوزر دیتابیس در 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 به منظور بروزسانی سطرها

زمانی که اطلاعات و ساختار سطرها نیاز به بروزرسانی دارد این دسترسی نیاز خواهد بود.

سطح دسترسی های مورد نیاز برای دیتابیس وردپرس

وردپرسوردپرس در شرایط عادی با دسترسی های SELECT, INSERT, UPDATE , DELETE بخوبی کار می کند و نیازی به اعطای دسترسی های بیشتری به یوزر دیتابیس نیست. البته توجه داشته باشید در هنگام نصب یا بروزرسانی وردپرس یا قالب و افزونه ها بهتر است بصورت موقتی دسترسی را فول کرده و پس از اتمام کار آنرا به حالت قبل بازگردانید.

سطح دسترسی های مورد نیاز برای دیتابیس WHMCS

WHMCS

برای عملکرد عادی که نصب و بروزرسانی انجام نمی شود دسترسی های DELETE , INSERT , SELECT , UPDATE , LOCK TABLES کافی است و نیازی به دسترسی های دیگر نیست. در زمان نصب، بروزرسانی و کارهای عملیاتی نظیر فعالسازی ماژول و … دسترسی های ALTER , CREATE , DROP , INDEX نیز بصورت موقت مورد نیاز خواهد بود. پس از اتمام کار می توانید این دسترسی ها را برداشته و در حالت مورد نیاز قرار دهید. این موضوع موجب خواهد شد دیتابیس WHMCS امنیت بسیار بیشتری داشته باشد.

تامین امنیت با تنظیم سطح دسترسی مورد نیاز

هر سیستم مدیریت محتوا به یکسری دسترسی ها برای عملکرد عادی خود نیاز دارد. اعطای دسترسی بیش از حد نیاز ممکن است زمینه را برای هک شدن دیتابیس سایت فراهم کند. به همین جهت توصیه می شود در هنگام کار بر روی امنیت سایت به این موضوع نیز توجه داشته باشید تا بالاترین سطح امنیتی ممکن را برای وب سایت خود تامین کنید.

5/5 - (3 امتیاز)

عیسی نورانی

حدود 10 سال است که بــصورت تخصـصی و حـرفه ای در حـوزه سئو و بهینه سازی سایت فعالیت مـی کند و تجربه همکاری با ده ها رسانه بزرگ اینترنتی را در کارنامه خود دارد. عیسی سالـــهاست که یکی از بـرتـرین ها در زمینه تولید محتوای حرفه ای مطابق با الگوریتم های موتورهای جستجوگر در کشور است. همچنین حدود 3 سال است که بصورت جدی پروژه های سئو و بهینه سازی مجموعه میزبان فا را مدیریت می کند.

‫۶ دیدگاه ها

  1. سلام
    خیلی از این مطلب ممنونم ، خیلی وقته که دنبال مطلبی برای تعیین سطح دسترسی دیتابیس مناسب برای وردپرس بودم .
    یه سوال دارم که چطور میشه بعد از ایجاد دیتابیس سطح دسترسیش رو تغییر داد ؟

    1. درود بر شما
      خوشحالم که این مطلب مورد توجه و استفاده شما قرار گرفته.
      در سی پنل مسیر
      MySQL® Databases » Privileged Users
      پایین گزینه Privileged Users لینک Manage Privileges
      در صفحه ظاهر شده می تونید تمامی دسترسی ها رو اعطا یا محدود کنید.
      با تشکر

  2. سلام
    چقدر این مظلب مفید و مختصر و خوب بود . مطالب زیادی از سایتهای خارجی دنبال کرده بودم ولی خیلی توضیحات اضافه هم داشتند . از این بابت ممنون .
    اگر دسترسی ها را محدود کنیم ، برای خودمان هم محدویت بوجود میاید ؟ پلاگین های وردپرس که جداولی میسازند و … چطور؟ مشکلی نخواهند داشت؟

    1. سلام و احترام؛
      این دسترسی ها برای یوزرهای دلخاوه اعمال میشه. در واقع یوزر متصل به اون دیتابیس در برخی عملیات محدود میشه.

  3. با سلام

    لطفا در sql دسترسی اینکه یک فرد فقط view از دو جدول و فقط 5 فیلد از آن دو جدول را ببیند و مابقی جداول را مشاهده نکند چگونه است؟؟

    با تشکر

  4. سلام وقت بخیر من جدولی در sql دارم که نام و پسورد کاربرها در اون ذخیره و در صفحه ای ورود که در اکسس هستش کاربر را از طریق همین جدول تائید میکند . مشکل من اینجاست که درصورت دسترسی کاربران به جداول از طریق connectionDSN این جدول را میتوانند مشاهده کنند چگونه میشود در عین حال که یوزر و پسورد را فورم اکسس از جدول بخواند ولی جدول کاربر قابل مشاهده نباشد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *