Контрольна робота з “Основи адміністрування баз даних”

Автор: Пользователь скрыл имя, 03 Мая 2013 в 12:29, контрольная работа

Описание работы

База даних дозволяє відслідковувати всі виконувані в ній дії, тобто проводити аудит. Існує дві можливості розміщення записів аудиту: таблиця SYS.AUD$ та журнал аудиту операційної системи (ця можливість залежить від конкретної операційної системи).
Аудит можливо проводити для трьох типів дій:
спроба реєстрації в базі даних;
звернення до об’єктів бази даних;
дії в базі даних.
Для активації аудиту бази даних файл init.ora повинен містити елемент для параметра AUDIT_TRAIL. Цей параметр може мати наступні значення:

Содержание

1. Аудит об’єктів бази даних ORACLE.
2.Розроблювана програма………………………………………………………...7
3. Список використаної літератури……………………………………………..11

4. Додаток №1 Лістинг програми………………………………………………12

Работа содержит 1 файл

марс_контрольная_оабд.doc

— 410.50 Кб (Скачать)

ДЕРЖАВНА  МИТНА  СЛУЖБА  УКРАЇНИ

АКАДЕМІЯ МИТНОЇ СЛУЖБИ УКРАЇНИ

 

Кафедра

Інформаційних управляючих систем та технологій

 

 

 

 

 

 

 

 

 

 

 

Контрольна  робота

    

З дисципліни “Основи адміністрування баз даних”

 

 

 

 

 

 

Виконав:  курсант групи К08-1

Стуканова М.Д

 

                                                             Перевірив:  доц. Кабак Л.В.

 

 

                                               

 

                                           

 

 

 

 

 

Дніпропетровськ

     2011 

 

АКАДЕМІЯ МИТНОЇ СЛУЖБИ УКРАЇНИ

факультет організації  та технології митного контролю

кафедра інформаційних  систем та технологій

спеціальність 6.080401 „інформаційні управляючі системи та технології”

 

З А В Д  А Н Н Я

на контрольну роботу

курсанта групи  К08-1

Стуканової Марини Дмитрівни

 

 

1. Аудит об’єктів  бази даних ORACLE.

 

 

2.Розробити програму, яка буде мати можливість переглядати  інформацію про правила цілісності  для таблиць будь якого користувача  . Розроблена програма повинна мати можливість видаляти будь яке із існуючих правил цілісності. Для написання програми необхідно використовувати наступні пакети програм Oracle Pl/SQL, Delphi чи C++Builder. У пояснювальній записці прикласти текст програми з коментарями. На дискеті прикласти відкомпільований файл програми з вихідними текстами програм.

 

 

3. Дата видачі завдання  ________________________

 

 

 

 

Керівник контрольної роботи __________________(доц. Кабак Л.В)

 

Завдання взяв до виконання ____________________(Стуканова М.Д.)

 

Зміст

1. Аудит об’єктів  бази даних ORACLE.

2.Розроблювана програма………………………………………………………...7

3. Список використаної літератури……………………………………………..11

 

4. Додаток  №1 Лістинг  програми………………………………………………12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Аудит об’єктів  бази даних ORACLE.

 

 

База даних дозволяє відслідковувати всі виконувані в ній дії, тобто проводити аудит. Існує дві можливості розміщення записів аудиту: таблиця SYS.AUD$ та журнал аудиту операційної системи (ця можливість залежить від конкретної операційної системи).

Аудит можливо проводити  для трьох типів дій:

  • спроба реєстрації в базі даних;
  • звернення до об’єктів бази даних;
  • дії в базі даних.

Для активації аудиту бази даних файл init.ora повинен містити  елемент для параметра AUDIT_TRAIL. Цей  параметр може мати наступні значення:

 

NONE

Аудит вимкнено.

DB

Аудит активовано, запис проводиться в таблицю SYS.AUD$.

OS

Аудит активовано, запис  проводиться в журнал аудиту операційної  системи.


 

Якщо записи аудиту зберігаються в таблиці SYS.AUD$, її необхідно періодично архівувати. Оскільки вона занесена у словник даних, то знаходиться у табличному просторі SYSTEM та може викликати проблеми з місцем на диску, якщо її записи періодично не очищувати.

Для видалення записів  аудиту з таблиці SYS.AUD$ користувачу має бути надана роль DELETE_CATALOG_ROLE.

Кожну спробу з’єднання з базою даних можна відслідкувати. Команда, що починає аудит цих спроб, має наступний вигляд:

audit session;

Якщо записи результатів  аудиту знаходяться в таблиці SYS.AUD$, їх можна продивитися за допомогою представлення словника даних DBA_AUDIT_SESSION цієї таблиці.

 При запиті записів  аудиту реєстрації з таблиці  представлення DBA_AUDIT_SESSION виводиться  обліковий запис операційної  системи, що використовувався, обліковий  запис Oracle та ідентифікатор терміналу.  Перевіряється значення стовпця Returncode: якщо воно дорівнює нулю, спроба з’єднання успішна, у протилежному випадку перевіряються номери двох найпоширеніших помилок, щоб з’ясувати причину невдачі. Також виводиться час входу та виходу з системи.

Перевіряються такі номери помилок:

 

ORA-1005

Повідомлення повертається, коли користувач вводить ім’я, але не вказує пароль.

ORA-1017

Повідомлення повертається, коли пароль введено неправильно.


 

Для вимкнення аудиту сеансу необхідно ввести команду noaudit:

noaudit session;

 

Можливо проведення аудиту будь-яких дій, що впливають на об’єкти бази даних: таблиці, зв’язки бази даних, табличні простори, синоніми, сегменти відкату, користувачі або індекси. Під час аудиту можна згрупувати дії, що впливають на ці об’єкти. Об’єднання команд зменшить об’єм роботи адміністратора з установки та підтримки налаштувань аудиту.

 

 

 

 

 

Oracle пропонує наступні групи параметрів оператора:

 

CONNECT

Відслідковує реєстрацію в базі даних Oracle та виходу з неї.

DBA

Відслідковує команди, що потребують повноважень адміністратора БД, такі як grant, revoke, audit, noaudit, create або alter tablespace, а також create або drop public synonym.

RESOURCE

Здійснює аудит команд create та drop для таблиць, кластерів, представлень, індексів, табличних просторів, типів та синонімів.

ALL

Аудит всіх цих команд.

ALL PRIVIEGES

Аудит всіх попередніх команд, а також аудит команд delete, insert, update та деяких інших.


 

Кожній дії, над якою може проводитися аудит, в базі даних  присвоюється чисельний код. Ці коди доступні в представленні AUDIT_ACTION. Дізнавшись код дії, можна з’ясувати як ця дія вплинула на об’єкт.

За допомогою конструкції username можна здійснювати аудит  конкретного користувача. Наприклад:

audit update table by SCOTT

Окрім аудиту операцій системного рівня над об’єктами, можна проводити аудит операцій з маніпулювання даними, наприклад команд select, insert, update та delete. Ці дії відслідковуються приблизно також, як і попередні. Єдина відмінність пов’язана з додаванням до команди audit нової конструкції.

Додатковими конструкціями  для аудиту об’єкту є by session або by access. Вони визначають, чи потрібно робити запис аудиту один раз для кожного сеансу (by session) або при кожному звертанні до об’єкта (by access).

Завдання № 2

 

Розробити програму, яка  буде мати можливість переглядати інформацію про правила цілісності для таблиць будь якого користувача . Розроблена програма повинна мати можливість видаляти будь яке із існуючих правил цілісності. Для написання програми необхідно використовувати наступні пакети програм Oracle Pl/SQL, Delphi чи C++Builder. У пояснювальній записці прикласти текст програми з коментарями. На дискеті прикласти відкомпільований файл програми з вихідними текстами програм.

 

 

Рис.1 Форма виконання програми.

 

Програма дає можливість адміністратору баз даних переглядати обмеження цілісності, встановлювати нові та видаляти існуючі обмеження для стовпців таблиці відповідного користувача.

 

 Список використаної літератури:

 

 

  1. Oracle9i DBA частина 1: Основи адміністрування. Пер. с англ. Догадкин Е. НОУ “УКЦ ФОРС” Москва, 2002.-388с.
  2. Oracle9i DBA частина 2: Основи адміністрування. Пер. с англ. Догадкин Е. НОУ “УКЦ ФОРС” Москва, 2002.-378с.
  3. Горєв А., Ахаян Р., Макашарипов С. Ефективна робота із СУБД. – Спб.: Пітер, 1997.– 704 с.
  4. Єпанешников А. М., Єпанешников В. М. Програмування в середовищі Delphi: Навчальний посібник: У 4-х ч. Ч. 4. Робота з базами даних. Організація довідкової системи – М.: ДИАЛОГ-МИФИ, 1998. – 400с.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Додаток№ 1 Лістинг програми:

 

#include <vcl.h>

#pragma hdrstop

 

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

 

void __fastcall TForm1::FormCreate(TObject *Sender)

{

ADOQuery1->Active = false;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("select username from sys.dba_users");

ADOQuery1->Active = true;

ComboBox1->Text=' ';

while(!ADOQuery1->Eof){

ComboBox1->Items->Add(ADOQuery1->FieldByName("username")->Value);

ADOQuery1->Next();

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

{

ADOQuery2->Active = false;

ADOQuery2->SQL->Clear();

ADOQuery2->SQL->Add("select table_name from sys.dba_tables where owner='"+ComboBox1->Text+"'");

ADOQuery2->Active = true;

ComboBox2->Text=' ';

ComboBox2->Items->Clear();

while(!ADOQuery2->Eof){

ComboBox2->Items->Add(ADOQuery2->FieldByName("table_name")->Value);

ADOQuery2->Next();

}

}

void __fastcall TForm1::ComboBox2Change(TObject *Sender)

{

ADOQuery3->Active = false;

ADOQuery3->SQL->Clear();

ADOQuery3->SQL->Add("select column_name from sys.dba_tab_cols where owner='"+ComboBox1->Text+"' and table_name='"+ComboBox2->Text+"'");

ADOQuery3->Active = true;

ComboBox3->Text=' ';

ComboBox3->Items->Clear();

while(!ADOQuery3->Eof){

ComboBox3->Items->Add(ADOQuery3->FieldByName("column_name")->Value);

ADOQuery3->Next();

}}

void __fastcall TForm1::ComboBox3Change(TObject *Sender)

{

ADOQuery4->Active = false;

ADOQuery4->SQL->Clear();

ADOQuery4->SQL->Add("select constraint_name from sys.dba_CONS_COLUMNS where owner='"+ComboBox1->Text+"' and table_name='"+ComboBox2->Text+"' and column_name='"+ComboBox3->Text+"'");

ADOQuery4->Active = true;

ComboBox4->Text=' ';

ComboBox4->Items->Clear();

while(!ADOQuery4->Eof){

ComboBox4->Items->Add(ADOQuery4->FieldByName("constraint_name")->Value);

ADOQuery4->Next();

}}

 

void __fastcall TForm1::ComboBox4Change(TObject *Sender)

{

ADOQuery6->Active = false;

ADOQuery6->SQL->Clear();

ADOQuery6->SQL->Add("select constraint_type from DBA_CONSTRAINTS where constraint_name='"+ComboBox4->Text+"'");

ADOQuery6->Active = true;

ComboBox5->Text=' ';

ComboBox5->Items->Clear();

while(!ADOQuery6->Eof){

ComboBox5->Items->Add(ADOQuery6->FieldByName("constraint_type")->Value);

ADOQuery6->Next();

}}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

        if (ComboBox5->Text=="R")

                {

                ADOQuery5->SQL->Clear();

                ADOQuery5->SQL->Add("alter table "+ComboBox1->Text+"."+ComboBox2->Text+" drop constraint "+ComboBox4->Text+"");

                ADOQuery5->Active = true;

                }

        else

                if (ComboBox5->Text=="P")

                {

                        ADOQuery5->SQL->Clear();

                        ADOQuery5->SQL->Add("alter table "+ComboBox1->Text+"."+ComboBox2->Text+" drop constraint "+ComboBox4->Text+"");

                        ADOQuery5->Active = true;

                }

                else

                {

                        ADOQuery5->SQL->Clear();

                        ADOQuery5->SQL->Add("alter table "+ComboBox1->Text+"."+ComboBox2->Text+" drop constraint "+ComboBox4->Text+"");

Информация о работе Контрольна робота з “Основи адміністрування баз даних”