close

Вход

Забыли?

вход по аккаунту

?

otchet7-8

код для вставкиСкачать
Лабораторная работа №7(ЗК-20).
Тема: Безопасность СУБД. Контекст приложений в СУБД Oracle.
Цель: обучение работе с механизмом "контекст приложений" (Application Context), являющимся важнейшим компонентом системы безопасности СУБД Oracle.
Отчет: --1 system
SELECT SYS_CONTEXT('userenv','CURRENT_USER') "CURRENT_USER",
SYS_CONTEXT('userenv','SESSION_USER') "SESSION_USER",
SYS_CONTEXT('userenv','PROXY_USER') "PROXY_USER",
SYS_CONTEXT('userenv','IP_ADDRESS') "IP_ADDRESS", SYS_CONTEXT('userenv','NETWORK_PROTOCOL') "NETWORK_PROTOCOL",
SYS_CONTEXT('userenv','AUTHENTICATION_TYPE') "AUTHENTICATION_TYPE",
SYS_CONTEXT('userenv','AUTHENTICATION_DATA') "AUTHENTICATION_DATA",
SYS_CONTEXT('userenv','CLIENT_IDENTIFIER') "CLIENT_IDENTIFIER"
FROM DUAL;
--4 sys
GRANT EXECUTE ON DBMS_SESSION TO sec;
--5 sec
CREATE OR REPLACE CONTEXT EMP_USER USING CURRENT_EMP;
EXECUTE current_emp.set_emp_info(7934, 'alex', 'king', 'king');
--6 sec
CREATE OR REPLACE PACKAGE SEC.CURRENT_EMP IS
PROCEDURE SET_EMP_INFO(EMPLOYEE_ID NUMBER, FIRST_NAME VARCHAR2, LAST_NAME VARCHAR2, EMAIL VARCHAR2);
END;
CREATE OR REPLACE PACKAGE BODY SEC.CURRENT_EMP IS
PROCEDURE SET_EMP_INFO(EMPLOYEE_ID NUMBER, FIRST_NAME VARCHAR2, LAST_NAME VARCHAR2, EMAIL VARCHAR2)
IS
BEGIN
DBMS_SESSION.SET_CONTEXT('emp_user', 'ID', EMPLOYEE_ID);
DBMS_SESSION.SET_CONTEXT('emp_user', 'NAME', (FIRST_NAME|| ' ' || LAST_NAME));
DBMS_SESSION.SET_CONTEXT('emp_user', 'EMAIL', EMAIL);
END;
END;
--8 system
SELECT * FROM DBA_CONTEXT;
--9 sec
GRANT EXECUTE ON current_emp TO sking7;
EXECUTE sec.current_emp.set_emp_info(7934, 'alex', 'king', 'king@gmail.ru');
SELECT SYS_CONTEXT('emp_user','ID') "ID",
SYS_CONTEXT('emp_user','NAME') "NAME",
SYS_CONTEXT('emp_user','EMAIL') "EMAIL" FROM DUAL;
--9 sking7
SELECT SYS_CONTEXT('emp_user','ID') "ID",
SYS_CONTEXT('emp_user','NAME') "NAME",
SYS_CONTEXT('emp_user','EMAIL') "EMAIL" FROM DUAL; EXECUTE sec.current_emp.set_emp_info(7934, 'james', 'clark', 'clark@gmail.ru');
SELECT SYS_CONTEXT('emp_user','ID') "ID",
SYS_CONTEXT('emp_user','NAME') "NAME",
SYS_CONTEXT('emp_user','EMAIL') "EMAIL" FROM DUAL;
Лабораторная работа №8(ЗК-21).
Тема: Безопасность СУБД. Тщательный контроль доступа.
Цель: Целью выполнения данной лабораторной работы является обучение работе с механизмом"тщательный контроль доступа" (Fine Grained Access Control - FGAC), являющимся важным компонентом системы безопасности СУБД Oracle.
Отчет: --sec
CREATE USER sking IDENTIFIED BY sking;
GRANT CREATE SESSION TO sking;
GRANT SELECT ANY TABLE TO sking;
GRANT EXECUTE ON DBMS_SESSION TO sking;
--sking
SELECT SYS_CONTEXT('EMP_USER','ID') "EMPLOYEE_ID",
SYS_CONTEXT('EMP_USER','NAME') "NAME",
SYS_CONTEXT('EMP_USER','EMAIL') "EMAIL" FROM DUAL;
CREATE OR REPLACE PACKAGE BODY SEC.CURRENT_EMP IS
PROCEDURE SET_EMP_INFO(EMPLOYEE_ID NUMBER, FIRST_NAME VARCHAR2, LAST_NAME VARCHAR2, EMAIL VARCHAR2)
IS
BEGIN
DBMS_SESSION.SET_CONTEXT('emp_user', 'ID', EMPLOYEE_ID);
DBMS_SESSION.SET_CONTEXT('emp_user', 'NAME', (FIRST_NAME|| ' ' || LAST_NAME));
DBMS_SESSION.SET_CONTEXT('emp_user', 'EMAIL', EMAIL);
END;
FUNCTION F_SER_EMP_INFO RETURN VARCHAR2
IS
var_EMPLOYEE_ID NUMBER;
var_FIRST_NAME VARCHAR2(100);
var_LAST_NAME VARCHAR2(100);
var_EMAIL VARCHAR2(100); BEGIN
var_EMAIL := SYS_CONTEXT('userenv','SESSION_USER');
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME
INTO var_EMPLOYEE_ID, var_FIRST_NAME, var_LAST_NAME
FROM HR.EMPLOYEES h WHERE h.email = var_EMAIL;
IF var_EMPLOYEE_ID IS NULL THEN
RETURN NULL;
ELSE SET_EMP_INFO(var_EMPLOYEE_ID, var_FIRST_NAME, var_LAST_NAME, var_EMAIL);
END IF;
RETURN 'true';
END;
END;
CREATE TRIGGER SEC.EMP_LOGON
AFTER LOGON
ON DATABASE
DECLARE
USERS VARCHAR2(100);
BEGIN
SELECT CURRENT_EMP.F_SER_EMP_INFO()
INTO USERS
FROM DUAL;
END;
Документ
Категория
Рефераты
Просмотров
13
Размер файла
53 Кб
Теги
otchet
1/--страниц
Пожаловаться на содержимое документа