37-1:
	conn system/manager
	CREATE OR REPLACE CONTEXT empenv USING scott.ctx;
37-2:
	conn scott/tiger
	CREATE OR REPLACE PACKAGE scott.ctx AS
	   PROCEDURE set_deptno;
	END;
	/
	CREATE OR REPLACE PACKAGE BODY scott.ctx AS
	  PROCEDURE set_deptno IS
	    id NUMBER;
	  BEGIN
	    IF sys_context('userenv','session_user')='BLAKE' THEN
	       DBMS_SESSION.SET_CONTEXT('empenv', 'deptno', 10);
	    END IF;
	    IF sys_context('userenv','session_user')='JONES' THEN
	      DBMS_SESSION.SET_CONTEXT('empenv', 'deptno', 20);
	    END IF;
	  END;
	END;
	/
37-3:
	conn sys/oracle as sysdba
	CREATE OR REPLACE TRIGGER login_trig
	   AFTER LOGON ON DATABASE CALL scott.ctx.set_deptno
	/
37-4:
	conn scott/tiger
	CREATE OR REPLACE PACKAGE scott.emp_pkg AS
	  FUNCTION emp_policy(p1 VARCHAR2,p2 VARCHAR2)
	    RETURN VARCHAR2;
	END;
	/
	CREATE OR REPLACE PACKAGE BODY scott.emp_pkg AS
	  FUNCTION emp_policy(p1 VARCHAR2,p2 VARCHAR2)
	  RETURN VARCHAR2 IS
	    d_predicate VARCHAR2(2000);
	  BEGIN
	    IF user NOT IN ('SCOTT') THEN
	      d_predicate := 'deptno = SYS_CONTEXT(''empenv'', ''deptno'')';
	      RETURN d_predicate;
	    END IF;
	    RETURN '1=1';
	  END;
	END;
	/
37-5:
	conn system/admin
	EXEC DBMS_RLS.ADD_POLICY('scott','emp','emp_policy','scott', 'emp_pkg.emp_policy','select,update,delete')
37-6:
	conn system/admin
	SELECT ename,sal FROM scott.emp;
37-7:
	UPDATE scott.emp SET sal=sal+100;
	SELECT ename,sal,deptno FROM scott.emp;
37-8:
	conn jones/jones
	SELECT ename,sal,deptno FROM scott.emp;
37-9:
	conn scott/tiger
	SELECT ename,sal,deptno FROM scott.emp;






	


