Курсовая работа: Захист інформації в інформаційних системах
CREATE ROLE user2;
CREATE ROLE users NOLOGIN;
GRANT users TO user2;
CREATE SCHEMA schema1;
ALTER SCHEMA schema1 OWNER TO user1;
ALTER SCHEMA schema2 OWNER TO user2;
Надамо деякі права новим користувачам.
GRANT INSERT ON Accounts TO user2;
GRANT SELECT ON Accounts TO users;
GRANT UPDATE ON Operations TO user2.
Більш гнучкішим засобом контролю за доступом до таблиць БД є віртуальна таблиця(view). Нижче приведені SQL-запити для створення віртуальних таблиць для вибору щоденних операцій, рахунків одеської філії банку та операцій з переводами коштів до філії:
CREATE VIEW Today_Operations AS
SELECT * FROM Operation WHERE dat = CURRENT_DATE
CREATE VIEW Odessa_Branch_Accounts AS
SELECT * FROM Account WHERE num IN (SELECT account FROM Accounts WHERE branch IN (SELECT num FROM Branch WHERE name = 'Odessa'))
CREATE VIEW Income_Operations AS
SELECT * FROM Operation WHERE change > 0.
У СКБД “Postgres” для віртуальних таблиць можлива заміна запитів UPDATE, INSERT, DELETEдо цих таблиць на запити користувача.
CREATE RULE Income_Operations_INSERT AS ON INSERT TO schema1.Income_Operations
DO INSTEAD INSERT INTO Income_Operations
SELECT NEW.code, NEW.dat, NEW.credit_num, NEW.debet_num
WHERE NEW.change >0;
CREATE RULE Income_Operations_UPDATE AS ON UPDATE TO schema1.Income_Operations
DO INSTEAD UPDATE Income_Operations SET
code=NEW.code, dat=NEW.dat, credit_num=NEW.credit_num, debet_num=NEW.debet_num
WHERE NEW.change >0;
CREATE RULE Income_Operations_DELETE AS ON DELETE TO schema1.Income_Operations
DO INSTEAD DELETE FROM Income_Operations WHERE NEW.change >0;
CREATE RULE Today_Operations_INSERT AS ON INSERT TO schema1.Today_Operations