پارامتر sql92_security

سوال: در صورتی که کاربر a تنها مجوز حذف اطلاعات(delete) را بر روی جدول usef.tbl1 دارا باشد(بدون داشتن مجوز select)، امکان اجرای دستور زیر را خواهد داشت؟

conn a/a
delete usef.tbl1 where name like ‘%u%’;

جواب: اجرای موفق این دستور برای کاربر a به مقدار پارامتر sql92_security بستگی دارد اگر مقدار این پارامتر برابر false باشد این دستور برای کاربر a بدون خطا اجرا خواهد شد:

delete usef.tbl1 where name like ‘%u%’;
4 rows deleted.

و در صورت تنظیم این پارامتر به مقدار true، اجرای دستور با خطا مواجه خواهد شد:

——sql92_security=true

delete usef.tbl1 where name like ‘%u%’;
ORA-01031: insufficient privileges

در نهایت می توان نتیجه گرفت که در هنگام انجام عملیات delete/update بر روی یک جدول، استفاده از اسامی ستونهای ان جدول در قسمت where/set، برای کاربری که مجوز select را ندارد، ممکن نخواهد بود البته اگر پارامتر sql92_security، به مقدار true تنظیم شده باشد!!!. با این تنظیم، امکان کنجکاوی اضافه از کاربر گرفته خواهد شد.

مقدار پیش فرض این پارامتر از اوراکل 12cR2 برابر با true می باشد(قبلا برابر با false بوده است).

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.