زبان کنترل داده (DCL)

GRANT، REVOKE و DENY مجوزهای پایگاه داده

زبان کنترل داده ها (DCL) زیر مجموعه ای از زبان پرس و جو ساختار (SQL) است و اجازه می دهد تا مدیران پایگاه داده دسترسی امنیتی به پایگاه های داده رابطه ای را پیکربندی کنند. این مفهوم به زبان تعریف داده (DDL)، که برای اضافه کردن و حذف اشیاء پایگاه داده و زبان DAM استفاده می شود، مورد استفاده برای بازیابی، قرار دادن و تغییر محتویات پایگاه داده است.

DCL ساده ترین زیر مجموعه های SQL است ، زیرا تنها سه دستور دارد: GRANT، REVOKE و DENY. در مجموع، این سه دستور، مدیران را با انعطاف پذیری برای تنظیم و حذف مجوزهای پایگاه داده به شیوه بسیار گرانبها ارائه می دهند.

اضافه کردن مجوز با فرمان GRANT

دستور GRANT توسط مدیران برای افزودن مجوزهای جدید به یک کاربر پایگاه داده استفاده می شود . این یک نحو بسیار ساده است، تعریف شده به شرح زیر است:

GRANT [امتیاز] ON [object] TO [کاربر] [با گزینه گانت]

در اینجا از هر پارامتری که می توانید با این فرمان ارائه دهید، خلاص شدن است.

به عنوان مثال، فرض کنید شما میخواهید کاربر Joe توانایی بازیابی اطلاعات را از جدول کارکنان در یک پایگاه داده به نام HR پیدا کند. شما ممکن است از دستور SQL زیر استفاده کنید:

بر اساس HR.employees انتخاب به جو

جو حالا توانایی بازیابی اطلاعات را از جدول کارکنان دارد. با این وجود او نمیتواند مجوز سایر کاربران را برای بازیابی اطلاعات از آن جدول به شما اعطا کند، زیرا شما در بند GRANT OPTION OPTION درج نشده است.

لغو دسترسی به پایگاه داده

دستور REVOKE برای حذف دسترسی به پایگاه داده از یک کاربر قبلا چنین دسترسی را اعمال کرده است. نحو این دستور به شرح زیر تعریف شده است:

REVOKE [اختیار دادن برای] [مجوز] ON [object] FROM [user] [CASCADE]

در زیر پارامترهای دستور REVOKE خلاصه شده است:

به عنوان مثال، دستور زیر اجازه دسترسی به جو را در مثال قبلی را لغو می کند:

بازخوانی انتخاب بر HR.employees از جو

دسترسی به بانک اطلاعاتی منعکس شده

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

DENY [مجوز] ON [object] TO [کاربر]

پارامترهای دستور DENY همانند آنهایی هستند که برای دستور GRANT استفاده می شوند.

به عنوان مثال، اگر بخواهید اطمینان حاصل کنید که متی هرگز قادر به حذف اطلاعات از جدول کارکنان نیست، دستور زیر را صادر کنید:

دین را بر روی HR.employees به متی