Курсовая работа: Политика безопасности баз данных
THEN NEXTVAL (' KLIENTS _ID') ELSE NEW. KLIENTS _ID END,
NEW. NAME, NEW. SEX, NEW. BIRTHDAY, L. ACCESS_LEVEL
FROM PG_GROUP G, PG_USER U, GROUPS_ACCESS_LEVEL L
WHERE
U. USENAME = CURRENT_USER AND
U. USESYSID = ANY (G. GROLIST) AND
L. GROUP_NAME = G. GRONAME;
Предоставить права на внесение записей в виртуальной таблице:
GRANT INSERT ON KLIENTS _LIST TO GROUP USERS;
GRANT SELECT,UPDATE ON KLIENTS _ID TO GROUP USERS;
Проверить работу механизма:
INSERT INTO KLIENTS _LIST VALUES (21,'IVANOV','М','10-10-1980');
Создать правило на операции изменения, пример которого представлен ниже:
DROP RULE KLIENTS _LIST_UPDATE ON KLIENTS _LIST;
CREATE RULE KLIENTS _LIST_UPDATE AS ON UPDATE
TO KLIENTS _LIST
DO INSTEAD
UPDATE KLIENTS SET KLIENTS _ID = NEW. KLIENTS _ID,
NAME = NEW. NAME, SEX = NEW. SEX, BIRTHDAY = NEW. BIRTHDAY,
SPOT_CONF = L. ACCESS_LEVEL
FROM PG_GROUP G, PG_USER U, GROUPS_ACCESS_LEVEL L
WHERE
KLIENTS _ID = OLD. KLIENTS _ID AND
SPOT_CONF = L. ACCESS_LEVEL AND
U. USENAME = CURRENT_USER AND
U. USESYSID = ANY (G. GROLIST) AND
L. GROUP_NAME = G. GRONAME;
Предоставить права на изменение записей в виртуальной таблице:
GRANT UPDATE ON KLIENTS _LIST TO GROUP USERS;