بررسی Invoker’s Rights و Definer’s Rights

پرسش: کاربر A قصد اجرای پروسیجری از کاربر B را دارد، برای انجام این کار، به کاربر A مجوز execute بر روی این پروسیجر داده شده است. در قسمتی از متن این پروسیجر، پسورد کاربر B هم تغییر خواهد کرد در صورتی که کاربر A، مجوز alter user را ندارد. با در نظر گرفتن این مسئله، کاربر A، امکان اجرای این پروسیجر را دارد؟

(بیشتر…)

تعیین پسورد ساده برای کاربر sys در 12cR2

در زمان ساخت پسوردفایل در نسخه 12cR2، باید برای تعیین پسورد، پیچیدگی هایی را لحاظ کرد تا پسوردفایل قابل ایجاد باشد. برای نمونه پسورد باید حداقل شامل 8 کارکتر باشد که در این هشت کارکتر حداقل یک حرف، یک رقم و یک کارکتر خاص(شبیه _,# و ….) موجود باشد همچنین این کارکتر نباید مشابه نام کاربری باشد و …. در غیر این صورت ایجاد پسوردفایل با خطا متوقف خواهد شد:

(بیشتر…)

TDE در اوراکل نسخه 11g

در نوشتاری که چندی قبل برای مبحث database vault ارائه شد، چگونگی جلوگیری از دسترسی و یا اصلاح اطلاعات خاص توسط مدیران بانکهای اطلاعاتی و یا افرادی که در سطوح بالایی به بانک اطلاعاتی دسترسی دارند، مورد بررسی قرار گرفته شد همانطور که در ان مطلب بیان کردیم، database vault تنها برای کنترل دسترسی در سطح بانک اطلاعاتی کاربرد دارد و برای جلوگیری از دسترسی غیر ایمن به اطلاعات در لایه سیستم عامل، باید از روشهای دیگری چون TDE استفاده کرد که در این نوشتار به این مهم خواهیم پرداخت.

(بیشتر…)

تفاوت مجوز سیستمی SELECT ANY DICTIONARY و نقش SELECT_CATALOG_ROLE

پرسش: چه تفاوتی بین مجوز سیستمی SELECT ANY DICTIONARY و نقش SELECT_CATALOG_ROLE وجود دارد؟

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

مثال 1: کاربر user_a با داشتن مجوز select any dictionary می تواند به ویوها و جداول data dictionary دسترسی داشته باشد:

SQL> create user user_a identified by a;

User created.

SQL> grant select any dictionary,connect to user_a;

Grant succeeded.

SQL> conn user_a/a@pdb1

—views
SQL> select count(*) from v$datafile;
COUNT(*)
————
4

—tables
SQL> select count(*) from sys.file$;
COUNT(*)
————
4
مثال 2: کاربر user_b با داشتن نقش SELECT_CATALOG_ROLE این قابلیت را ندارد که به جداول data dictionary دسترسی داشته باشد و صرفا خواهد توانست ویوهای data dictionary را ببیند.

SQL> create user user_b identified by a;

User created.

SQL> grant SELECT_CATALOG_ROLE ,connect to user_b;

Grant succeeded.

SQL> conn user_b/a@pdb1

—views
SQL> select count(*) from v$datafile;
COUNT(*)
————
4

—tables
SQL> select count(*) from sys.file$;

ORA-00942: table or view does not exist

تفاوتهای دیگری هم بین این دو مجوز وجود دارد که در اینجا صرفا به یکی از انها اشاره شد.

پ.ن: از اوراکل 12c، دسترسی به بعضی از جداول data dictionary حتی با داشتن مجوز select any dictionary هم ممکن نمی باشد. لیست بعضی از این جداول را در زیر می بینید:

USER$, ENC$ , DEFAULT_PWD$, LINK$, USER_HISTORY$, CDB_LOCAL_ADMINAUTH$, XS$VERIFIERS

ویژگی های جدید SecureFile در 12c

1parallel DML: در نسخه 11g صرفا برای LOB segmentای که در جدول پارتیشن قرار دارد، امکان انجام عملیات parallel DML وجود دارد. در نسخه 12c، این امکان برای جداول پارتیشن بندی نشده هم به وجود آمد:

alter session force parallel dml;

insert into usef.sec_lob select * from usef.aks;

2پیش فرض شدن SecureFile برای ذخیره سازی LOB: در اوراکل 12c، مقدار پیش فرض پارامتر db_securefile برابر PREFERRED می باشد که سبب خواهد شد تا هر Lob segmentای که ایجاد می شود، به صورت SecureFile باشد.

3.زمانی که جدولی با استفاده از data pump به اوراکل 12c منتقل میشود ، lobsegment آن را می توان به صورت SecureFile ایجاد نمود:

TRANSFORM=LOB_STORAGE:SECUREFILE|BASICFILE|DEFAULT|NO_CHANGE

با تنظیم این پارامتر به SecureFile می توان به این هدف رسید:

impdp hr/hr DIRECTORY=dpdump_dir DUMPFILE=hr.dmp TRANSFORM=LOB_STORAGE:SECUREFILE

Privilege Analysis در اوراکل 12c

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

از اوراکل 12c، ویژگی جدیدی به نام privilege analysis ارائه شد که می توان از طریق آن، مجوزهای مورد استفاده کاربران را در یک بازه زمانی مشخص، مانیتور نمود و در نهایت، مجوزهای اضافی را(در صورت وجود!)، از کاربران سلب کرد.

(بیشتر…)

RESOURCE ROLE و UNLIMITED TABLESPACE

در اوراکل 11g، با اهدای نقش resource به یک کاربر، همزمان مجوز unlimited tablespace هم به آن کاربر داده خواهد شد و کاربر قادر خواهد بود حتی در system tablespace هم اطلاعاتی را ذخیره کند.

در نسخه 12c، مجوز unlimited tablespace از role resource گرفته شده است.

(بیشتر…)

ویژگی Data Redaction در اوراکل 12c

در صورتی که بخواهیم قسمتی از اطلاعات یک جدول، برای تعدادی از کاربران مخفی و یا غیرواقعی نمایش داده شود، می توانیم از ویژگی data redaction که از اوراکل 12c ارائه شد، استفاده کنیم به این صورت که ابتدا کاربر پرس و جویی را اجرا کرده و منتظر دریافت خروجی خواهد بود، بر روی داده درخواستی کاربر، عملیات redact انجام شده و در نهایت کاربر مورد نظر، داده را بر اساس آن فرمتی که از قبل تعریف کرده ایم، خواهد دید.

(بیشتر…)