2
МІНІСТЕРСТВО НАУКИ І ОСВІТИ УКРАЇНИ
Одеський національний політехнічний університет
Кафедра комп'ютерних інтелектуальних систем та мереж
openssl ca -config $SSLDIR$/openssl.cnf -policy policy_anything -noemailDN -out $SSLDIR/requests/signed.pem -infiles $SSLDIR/requests/request.pem
b. Забезпечення журналювання змін
Для забезпечення журналювання змін інформації в таблицях для кожної з них створюється таблиця-журнал та правила для операцій зміни:
CREATE TABLE Account_logs (
USERNAME VARCHAR DEFAULT CURRENT_USER,
OPER_TYPECHAR(1) CHECK (OPER_TYPE IN ('I','U','D')),
OPER_TIMETIMESTAMP DEFAULT NOW(),
num_new INTEGER,
num_old INTEGER,
balance_new INTEGER,
balance_old INTEGER);
CREATE TABLE Operation_logs (
code_new INTEGER,
code_old INTEGER,
dat_new DATE,
dat_old DATE
credit_num_new INTEGER,
credit_num _old INTEGER
debet_num _new INTEGER,
debet_num _old INTEGER
change_new INTEGER,
change _old INTEGER);
CREATE TABLE Branch_logs (
name_new VARCHAR(50),
name_old VARCHAR(50),
address_new VARCHAR(50),
address_old VARCHAR(50),
capital_new INTEGER,
capital_old INTEGER);
DROP RULE Account_logs _INSERT ON Account;
CREATE RULE Account_logs _INSERT AS ON INSERT TO Account
DO
INSERT INTO Account_logs
(OPER_TYPE, num_new , balance_new )
VALUES ('I', NEW.num, NEW.balance);
DROP RULE Account_logs _UPDATE ON Account;
CREATE RULE Account_logs _ UPDATE AS ON UPDATE TO Account
(OPER_TYPE, num_new , balance_new, num_old, balance_old)
VALUES ('U', NEW.num, NEW.balance, OLD.num, OLD.balance);
DROP RULE Account_logs _DELETE ON Account;
CREATE RULE Account_logs _DELETE AS ON DELETE TO Account
(OPER_TYPE, num_old , balance _old,)
VALUES ('D', OLD.num, OLD.balance);
DROP RULE Operation_logs _INSERT ON Operation;
CREATE RULE Operation_logs _INSERT AS ON INSERT TO Operation
INSERT INTO Operation_logs
(OPER_TYPE, code_new , dat_new, credit_num_new, debet_num_new, change_new )
VALUES ('I', NEW.code, NEW.dat, NEW.credit-num, NEW.debet_num, NEW.change);
DROP RULE Operation_logs _UPDATE ON Operation;
CREATE RULE Account_logs _ UPDATE AS ON UPDATE TO Operation
(OPER_TYPE, code_new , dat_new, credit_num_new, debet_num_new, change_new,
code_old, dat_old, credit_num_old, debet_num_old, change_old)
VALUES ('U', NEW.code, NEW.dat, NEW.credit_num, NEW.debet_num, NEW.change,
OLD.code, OLD.dat, OLD.credit_num, OLD.debet_num, OLD.change);
DROP RULE Operation_logs _DELETE ON Operation;
CREATE RULE Operation_logs _DELETE AS ON DELETE TO Operation
(OPER_TYPE, code_old , dat_old, credit_num_old, debet_num_old, change_old )
VALUES ('D', OLD.code, OLD.dat, OLD.credit_num, OLD. debet_num, OLD.change);
DROP RULE Branch_logs _INSERT ON Branch;
CREATE RULE Account_logs _INSERT AS ON INSERT TO Branch
INSERT INTO Branch_logs
(OPER_TYPE, num_new , name_new, address_new, capital_new )
VALUES ('I', NEW.num, NEW.name, NEW. address, NEW. capital);
DROP RULE Branch_logs _UPDATE ON Branch;
CREATE RULE Account_logs _ UPDATE AS ON UPDATE TO Branch
(OPER_TYPE, num_new , name_new, address_new, capital_new,
num_old , name_ old , address_ old , capital_ old )
VALUES ('U', NEW.num, NEW. name, NEW. address, NEW. capital,
OLD.num, OLD. name, OLD. address, OLD. capital);
DROP RULE Branch_logs _DELETE ON Branch;
CREATE RULE Branch_logs _DELETE AS ON DELETE TO Branch
(OPER_TYPE, num_old , name_old, address_old, capital_old )
VALUES ('D', OLD.num, OLD.name, OLD.address, OLD.capital);
Заключення
В даній роботі проведено проектування та реалізація БД у СКБД Postgres. Реалізовані наступні елементи безпеки ІС:
- цілісність даних на рівні таблиць, перевірка їх коректності;
- облік користувачів, груп користувачів та їх прав, рівні секретності, контроль доступу до таблиць;
- організація захищеного з'єднання з СКБД за допомогою протоколу SSL;
- організація журналювання змін таблиць засобами самої СКБД.
Перелік літератури
1. Грабер М. SQL. - М: Лори, 2003. - 642 с.
2. Дейт К. Дж. Введение в системы баз данных. - К: Диалектика, 1998. - 784 с.