در نوشتاری که چندی قبل برای مبحث database vault ارائه شد، چگونگی جلوگیری از دسترسی و یا اصلاح اطلاعات خاص توسط مدیران بانکهای اطلاعاتی و یا افرادی که در سطوح بالایی به بانک اطلاعاتی دسترسی دارند، مورد بررسی قرار گرفته شد همانطور که در ان مطلب بیان کردیم، database vault تنها برای کنترل دسترسی در سطح بانک اطلاعاتی کاربرد دارد و برای جلوگیری از دسترسی غیر ایمن به اطلاعات در لایه سیستم عامل، باید از روشهای دیگری چون TDE استفاده کرد که در این نوشتار به این مهم خواهیم پرداخت.
(بیشتر…)DATABASE VAULT
تفاوت مجوز سیستمی 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
1. parallel 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 ارائه شد که می توان از طریق آن، مجوزهای مورد استفاده کاربران را در یک بازه زمانی مشخص، مانیتور نمود و در نهایت، مجوزهای اضافی را(در صورت وجود!)، از کاربران سلب کرد.
(بیشتر…)Oracle Lock Management
زمانی که در یک بانک اطلاعاتی کاربران متعددی مشغول خواندن و نوشتن هستند، ممکن است دو کاربر به صورت همزمان قصد اصلاح یک شی را داشته باشند در این شرایط، درصورت عدم کنترل دسترسی، ممکن است داده ای از بین رفته و یا داده های ان شی ناسازگار شوند.
برای مدیریت و کنترل دسترسی همزمان، اوراکل از مکانیزمی به نام lock استفاده می کند که در این متن، قصد داریم در مورد آن مطالبی را ارائه کنیم.
RESOURCE ROLE و UNLIMITED TABLESPACE
در اوراکل 11g، با اهدای نقش resource به یک کاربر، همزمان مجوز unlimited tablespace هم به آن کاربر داده خواهد شد و کاربر قادر خواهد بود حتی در system tablespace هم اطلاعاتی را ذخیره کند.
در نسخه 12c، مجوز unlimited tablespace از role resource گرفته شده است.
(بیشتر…)ویژگی Data Redaction در اوراکل 12c
در صورتی که بخواهیم قسمتی از اطلاعات یک جدول، برای تعدادی از کاربران مخفی و یا غیرواقعی نمایش داده شود، می توانیم از ویژگی data redaction که از اوراکل 12c ارائه شد، استفاده کنیم به این صورت که ابتدا کاربر پرس و جویی را اجرا کرده و منتظر دریافت خروجی خواهد بود، بر روی داده درخواستی کاربر، عملیات redact انجام شده و در نهایت کاربر مورد نظر، داده را بر اساس آن فرمتی که از قبل تعریف کرده ایم، خواهد دید.
(بیشتر…)READ ANY TABLE
مجوز select any table، علاوه بر امکان مشاهده اطلاعات جداول، قابلیتهای اضافه ای را هم به کاربران خواهد داد نظیر:
select * from .. for update;
مجوز جدیدی در اوراکل 12c ارائه شد که read any table نام دارد و می توان از آن به عنوان جایگزینی برای select any table استفاده کرد این مجوز، صرفا امکان مشاهده اطلاعات را به کاربران خواهد داد و قابلیتهای اضافه مربوط به مجوز select any table را ندارد.
(بیشتر…)DDL LOGGING
پارامتر enable_ddl_logging که از اوراکل 12c اضافه شد قابلیت لاگ گیری از دستورات DDLای را در فایلی مجزا ارائه می دهد دستورات DDLای از قبیل:
CREATE|ALTER|DROP|TRUNCATE TABLE
DROP USER
CREATE|ALTER|DROP PACKAGE|FUNCTION|VIEW|SYNONYM|SEQUENCE
(بیشتر…)