در این قسمت از آموزش اوراکل بعد از آشنایی با نقش ها Roles در اوراکل قصد داریم آموزش Auditing را یاد بگیریم.

نرم افزار اوراکل Oracle database شامل یک قابلیت جدیدی به نام Auditing می باشد که این امکان را برای مدیران دیتابیس فراهم می کند که عملیات های دیتابیس را پیگیری و ثبت بکند. تعدادی از عملیات هایی که audited می شوند جز دسته بندی سطح بالا high level می باشد مانند تلاش های ناموفق failed که کاربران برای ورود به دیتابیس می باشد و یک سری عملیات های دیگری هستند که audited می شود که جز دسته بندی detailed level می نامند که مانند کاربر یک سری رکوردهایی را از جدول خاصی گرفته و نمایش می دهد.

بطور کلی مدیران دیتابیس مسئول این هستند که به دلایل امنیتی و پیگیری عملیات های خاص قابلیت auditing و monitoring را فعال می کنند.

بصورت کلی با استفاده از دستور AUDIT برای انجام عملیات Auditing استفاده می شود.

مجوزها و دسترسی های Privileges لازم برای عملیات Auditing

قبل از این که کاربر بخواهد عملیات auditing با استفاده از دستور AUDIT را انجام دهد بایستی مجوزها و دسترسی های Privileges لازم برای انجام این عملیات را داشته باشد که این مجوزها به شرح ذیل می باشد:

  • برای auditing عملیات های سطح high-level کاربر بایستی مجوز و دسترسی AUDIT SYSTEM را داشته باشد.
  • برای auditing عملیات های روی آبجکت های خاصی در دیتابیس کاربر بایستی مجوز و دسترسی AUDIT ANY روی هر اسکیما داشته باشد.

در مثال زیر با کاربری به نام system به دیتابیس متصل شده و مجوزها و دسترسی های AUDIT SYSTEM و AUDIT ANY به کاربر store می دهیم.

آموزش اوراکل

مثال هایی از Auditing

در مثال زیر با کاربری به نام store به دیتابیس متصل شده و می خواهیم کاربر از دستور CREATE TABLE استفاده کرد و جدولی ایجاد کرد audits انجام شود.

آموزش اوراکل

در نتیجه استفاده از دستور AUDIT زمانی که کاربر جدول ایجاد کند بصوت زیر :

آموزش اوراکل

شما می توانید audit و اطلاعاتی را که جدول ایجاد شده است را در VIEW ویوویی به نام user_audit_trail ثبت می شود که با نمایش ویوو می توان اطلاعات را مشاهده کنید.

آموزش اوراکل

همچنین شما می توانید روی کاربر خاصی هر دستور و کوئری SQL statements انجام شود می توان audit انجام داد.

به عنوان مثال کاربری به نام store هر نوع دستور SELECT زده شود اطلاعات آن audit شود.

آموزش اوراکل

در مثال بعد audits تمامی دستورات DML از جمله INSERT , UPDATE و DELETE که توسط کاربرهای store و steve ثبت شود.

آموزش اوراکل

همچنین شما می توانید audits را روی کوئری و دستورات SQL statements فقط در یک آبجکت خاص انجام دهید. به عنوان مثال عملیات audits را فقط روی آبجکت products که هر نوع کوئری SELECT زده شود را ثبت کند.

آموزش اوراکل

در مثال بعد عملیات audits فقط روی آبجکت employees روی تمامی دستوران و کوئری های SQL انجام شود را ثبت کند.

آموزش اوراکل

همچنین شما می توانید از قابلیت هایی به نام WHENEVER SUCCESSFUL و WHENEVER NOT SUCCESSFUL که نشان می دهد auditing چه زمانی بایستی انجام شود:

  • WHENEVER SUCCESSFUL که نشان می دهد auditing زمانی باید انجام شود که دستور statement با موفقیت در دیتابیس اجرا شود.
  • WHENEVER NOT SUCCESSFUL که نشان می دهد auditing زمانی باید انجام شود که دستور statement با موفقیت انجام نشود.

که بصورت پیش فرض هر دو اتقاق می افتد جون عملیات audit فارق از این است که عملیا ت با موفقییت انجام شود یا خیر.

مثال زیر استفاده از امکان WHENEVER NOT SUCCESSFUL می باشد .

آموزش اوراکل

مثال زیر استفاده از امکان WHENEVER SUCCESSFUL می باشد.

آموزش اوراکل

همچنین شما می توانید از امکان BY SESSION و BY ACCESS استفاده کنید که :

  • BY SESSION که عملیات audit فقط براساس بک کاربر و session که به دیتابیس وارد شده است انجام می شود و audit تا زمانی که Session برقرار است انجام خواهد پذیرفت.
  • BY ACCESS که عملیات audit فقط روی هر کاربری که هر زمان به آن آبجکت دسترسی داشته باشد انجام خواهد پذیرفت.
آموزش اوراکل

از طریق دستور NOAUDIT عملیات audit غیرفعال شده و متوقف می شود. به عنوان مثال :

آموزش اوراکل

با توجه به مثال زیر از طریق دستور ALL PRIVILEGES تمامی audit غیر فعال می شود.

آموزش اوراکل

در اوراکل دیتابیس نسخه ۱۲g به بعد در قسمت Auditing دو قابلیت اضافه شد :

  • ALL STATEMENTS که مشخص می کند عملیات Auditing روی همه دستورات و کوئری های SQL انجام خواهد پذیرفت که این دستور ALL STATEMENTS همیشه با کلمات کلیدی AUDIT و NOAUDIT مورد استفاده قرار میگیرد.
  • IN SESSION CURRENT که مشخص می کند که عملیات Auditing فقط در session جاری کاربر می باشد و این دستور IN SESSION CURRENT با کلمه کلیدی AUDIT همراه می باشد.
آموزش اوراکل

اطلاعات بیشتر در مورد Audit