مفهوم و شی اصلی در امنیت پایگاه داد همانند اوراکل، کاربران هستند. به طور کلی و در تمامی سیستم های پایگاه داده کاربران می تواند شامل مدیرها (database administrator – dba)، توسعه دهنده گان (database developers) و یا کاربران نهایی (end-user) باشد. همچنین دسترسی به پایگاه داده می تواند به صورت مستقیم و از طریق دستورهای SQL باشد و یا از راه دور و از طریق برنامه هایی مانند وب سایت ها و برنامه های بانکی باشد. در زمان ایجاد کاربر، می توانیم مجوزهایی را به آن کاربر و بر روی داده ها و اشیا محتلف پایگاه داده، اعطا کنیم. بنابراین مجوزها (privilege) تعیین می کنند که کاربر چه اندازه می تواند بر روی پایگاه داده دسترسی داشته باشد.

نمایش فهرست کاربران

از کارهایی که مدیر پایگاه داده باید در قبال حساب های کاربری انجام دهد، می توانیم به تعیین تاریخ انقضا پسورد و یا قفل کردن حساب کاربری اشاره کنیم. جدولی  به نام dba_users وجود دارد که از طریق آن می توانیم اطلاعاتی را در مورد حساب های کاربری بدست آوریم. همچنین، می توانید دستور DESC dba_users را انجام دهید تا بتوانید ساختار جدول dba_users را ببینید. در دستورهای زیر، نخست با نقش sysdba به سیستم وارد شده ایم و پس پرس و جو برای نمایش نام کاربران انجام شده که در ستون username نگهداری می شوند.

مثال – اگر بخواهیم فهرست و تاریخ ایجاد کاربرهایی را پیدا کنیم که دارای وضعیت OPEN هستند، باید کوئری زیر را اجرا کنیم.

مثال – فهرست کاربران و تاریخ قفل شدن حساب کاربری آنها را پیدا کنید.

مثال – فهرست کاربرانی را پیدا کنید که حساب کاربری آنها منقضی (expire) شده و همچنین حساب آنها قبل شده است.

کاربرهای پیشفرض اوراکل با نقش مدیر

در زمان نصب پایگاه داده توسط dbca (مخفف ) دو کاربر sys و system به صورت پیشفرض ایجاد خواهند شد. هر یک از این کاربر به عنوان کاربرهای مدیر در اوراکل هستند. به این کاربرها مجوزهایی’ () اعطا شده است تا بتوانند وظایف مدیریتی را انجام دهند. زمانی که پایگاه داده ایجاد می شود، اوراکل یک نقش (role) به نام DBA ایجاد می کند.

۱- کاربر SYS: تمامی جدوال و نماهای (views) پایه که دیتا دیکشنری (data dictionary) را تکشیل می دهند در اسکیمایی به نام SYS ذخیره شده اند. تمامی جدوال و نماهایی که دیتا دیکشنری را شکل می دهند برای انجام عملیات پایگاه داده اوراکل لازم و ضروری هستند.به منظور حفظ یکپارچگی و سازگاری دیتا دیکشنری، تنها اوراکل می تواند بر روی جداول و نماهای درون اسیکما SYS، بنویسد. این بدین معنی است که ختی کاربر SYS نیز نباید به صورت مستقیم این جداول و نماها را تغییر دهد. نکته مهم دیگری که نباید فراموش کنید این است که نباید هیچ شی مانند جدول را درون اسکیما SYS ایجاد کنیم.

۲ – کاربر SYSTEM: کاربری به نام SYSTEM حساب کاربری دیگری است که به صورت پیشفرض در زمان ایجاد پایگاه داده اوراکل به صورت خودکار ایجاد خواهد شد و همانند SYS نقش DBA به آن انتساب داده می شود. همانند آنچه که در مورد SYS گفته شد، اسیکمایی به نام SYSTEM وجود دارد که شامل جداولی است که اطلاعاتی لازم برای مدیریت اوراکل را در خود نگهداری می کنند.

۳ – نقش DBA: در مطالب پیشرو در مورد مجوزها و نقش ها (roles) صحبت خواهیم کرد. اوراکل به SYS و SYSTEM نقش DBA را انتساب می دهد. هر نقش شامل چندین مجوز است و به عبار ت دیگر بجای اینکه هر مجوز را تک تک اعطا کنیم، یک گروه از مجوزها را به یک نقش اختصاص می دهیم و سپس آن نقش را به کاربر اعطا می کنیم.

اوراکل به بزرگی و کوچکی حرف ها، حساس نیست، پس نام کاربری SYS و sys یکسان هستند.

نقش ها (Roles)، مفهومی در پایگاه داده ها یا نرم افزارهای دیگر هستند که گروهی از مجوزها را در خود دارند. بنابراین، به جای اینکه تک تک مجوزها را به یک کاربر یا چندین کاربر بدهیم، پس بهتر است تا یک نقش بسازیم و سپس مجوزها را به آن نقش بسازیم و سپس آن نقش را به کاربر می دهیم.

مجوزها در اوراکل

به عنوان یک مدیر پایگاه داده شامل وظایف مختلفی مانند راه اندازی (startup) و خاموش (shutdown) کردن را بر عهده دارد. برای آنکه کاربرانی که به عنوان مدیر در نظر گرفته می شوند بتوانند عملیات های لازم را انجام دهند، باید محوزهای (administrative privileges) لازم را به آنها اعطا کرد. دو محوز اساسی در اوراکل sysdba و sysoper نام دارند. به هر حال هر مجوز تعیین کننده یک عملیات بر روی پایگاه داده است. به طور مثال می توانیم به موارد زیر اشاره کنیم:

۱ – آیا کاربر می تواند جدولی را ایجاد کند.

۲ – آیا کاربر می تواند داده های جدول را واکشی (select) کند.

۳ – آیا کاربر می تواند داده ای را اضافه (insert) کند.

۳ – آیا کاربر می تواند داده های جدول را تغییر (update) یا حذف (delete) کند.

دو مجوز مدیریتی sysdba و sysoprer

sysdba و sysoprer دو مجوز مدیریتی (administrative privileges) هستند که عملیات سطح بالایی را همانند راه اندازی و خاموش کردن، پشتیبان گیری و بازیابی پایگاه داده را انجام می دهند. بیشترین سطح دسترسی تحت مجوز sysdba می باشد. کاربری که با مجوز sysdba به پایگاه داده دسترسی دارد، بالاترین سطح دسترسی به پایگاه داده را دارد.مجوز sysoper امکان انجام برخی از وظایف و اعمال را بدون جستجو و مشاهده داده های کاربران، را به کاربری که با این مجوز به پایگاه داده متصل شده است را می دهد.

هر دو مجوز اجازه دسترسی به instance را می دهند، حتی اگر آن instance خاموش (shutdown) باشد.در مطالب بعدی در مورد password file و استفاده از دستور orapwd توضیح می دهیم ولی باید بدانید که کنترل این مجوزها کاملا خارج از خود پایگاه داده اتفاق می افتد. در زمان نصب پایگاه داده، مجوز sysdba به کاربر sys اعطا می شود.در صورتی که می خواهید با کاربر sys به سیستم وارد (متصل) شوید باید از مجوز sysdba و sysoper استفاده کنید. زمانی که کاربر با sysdba به سیستم وارد شود، مجوز sysdba را دریافت و اگر با sysoper وارد شود، مجوز sysoper را دریافت می کند.

عملیات هایی که sysdba در اختیار قرار داده است

۱ – راه اندازی (startup) و خاموش کردن (shutdown)

۲ – اجرای دستور alter database open/mount/backup

۳ – اجرای دستور create database

۴ – اجرای دستور drop database

۵ – اجرای دستور create spfile 

۶ – اجرای دستور alter database archivelog

۷ – اجرای دستور alter database recover (شامل بازیابی کامل complete recovery و بازیابی غیر کامل incomplete recovery می شود)

عملیات هایی که sysoper در اختیار قرار داده است

۱ – راه اندازی (startup) و خاموش کردن (shutdown)

۲ – اجرای دستور alter database open/mount/backup

۳ – اجرای دستور create spfile

۴ – اجرای دستور alter database archivelog

۵ – اجرای دستور alter database recover (تنها شامل بازیابی کامل complete recovery می شود)

اما زمانی که یک کاربر با مجوزهای sysdba یا sysoper وارد می شود به کدام اسکیما دسترسی دارد؟ در مطالب پیشرو توضیح خواهیم داد که چگونه به کاربری مجوز sysdba یا sysoper اعطا کنید ولی هر زمان که کاربر با مجوز sysdba وارد شود، به اسکیما sys متصل می شود و اگر با sysoper وارد شود، به اسکیما public متصل خواهد شد. بنابراین می توانیم نتیجه بگیریم که:

۱ – اسکیما sys نام اسکیما پیشفرض کاربر sys است.

۲ – اسکیما sys اسکیمایی است که هر کاربر که با sysdba وارد شده باشد به آن متصل می شود.

۳ – اسکیما public اسکیمایی است که هر کاربر که با sysoper وارد شده باشد به آن متصل می شود.

۴ – اسکیما system نام اسکیما پیشفرض کاربر system است.

معماری اوراکل – اسکیما و کاربران